I have a line constructed like this:
pro * con * date * at * pri * msg *
Where '*' can be any number of words or symbols. Case does not matter. Further the data pair can be in any order making
con * DAte * aT * mSg * pri * pro *
Just as legal as the former example. I'd like to get this data in hash such that pro, con, date, at, pri and msg are the keys with the *'s as the data. For example:
I've tried several different regexes. The closest ispro my project con my customer date 2009-10-5 at 17:00 pri 2 msg Rack +new server pro = my project con = my customer date = 2009-10-5 at = 17:00 pri = 2 msg = Rack new server
However, if 'pro *' is at the end of the line it does not match. Upon trying to account for being at the end of the line I end up with capturing either the entire remainder of the line or just a single white space. Any ideas?if ( m/\s?pro\s(.*?)\s(con|due|at|pri|msg)\s/i ){ print "pro=".$1."\n"; }
In reply to parsing data pairs from single line by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |