Perl-Sensitive Sunglasses | |
PerlMonks |
Writing a negative regex using =~by ftumsh (Scribe) |
on Oct 17, 2012 at 09:36 UTC ( [id://999506]=perlquestion: print w/replies, xml ) | Need Help?? |
ftumsh has asked for the wisdom of the Perl Monks concerning the following question:
Lo,
I am trying to implement a -ve regex using only the =~ construct. ie The regex should match if a string is not found in the source string. I am using a daemon that accepts regexes and applies them to files, which is why I am stuck with the =~ construct. Here is a sample string:L,0010,8001149805,003,20121015,0600,267,204193,20121015,1300,,GBFER,204193 I should like to have a positive match if the string doesn't contain GBFER and GBFOO. Just like !~ /(?:GBFER|GBFOO)/. All I can know about the string is that it starts with "L," and has a fixed number of commas. Everything between the commas may be zero or multiple alphanumeric. Also, the bit I am wanting to test will be between the 11th and 12th commas. I did have the (as I thought hours ago) wizzo idea of having a conditional regex with a look ahead assertion. If the lookahead matched, I'd use a regex that always failed. If the look ahead didn't match, I'd use a regex that always matched. However, after hours of google and RTFM, I can't get it to work (it is another node)... So, any and all comments, ideas, pointers, welcomed. Warmly John
Back to
Seekers of Perl Wisdom
|
|