[ILUG] Perl Regex Help Needed

Steven Satelle ssatelle at gmail.com
Sun Sep 11 19:03:27 IST 2005


kae at verens.com wrote:
>>while ( $trivia =~ m/^[QA] (\d)+\) (.*)/gms) {
>>    print "Matched ($1) and ($2)\n";
>>}
>>
>>But that doesn't work either. It greedily grabs *everything*.
> 
> 
> The problem is that you're not telling it where to stop matching.
> 
> Maybe this?
> 
> while ( $trivia =~ m/^Q (.*?)^A (.*?)^Q/gms) {
>     print "Matched ($1) and ($2)\n";
> }
> 
> that might work, but it will fall down on the last one. I don't know what
> the character for "EOF" is. If you do, then substitute the last ^Q for
> (^Q|EOF) with the EOF obviously fixed, and that /might/ do it (been a
> while since I wrote Perl).
> 
> Kae

While means while the file, It runs the length of the input then 
automagically dies. (I think, just drank 2 bottles of wine)



More information about the ILUG mailing list