|
|
| Do you know where your variables are? | |
| PerlMonks |
RE: Quantifiers in regular expressionsby Anonymous Monk |
| on Apr 23, 2000 at 01:35 UTC ( #8619=note: print w/ replies, xml ) | Need Help?? |
|
As a suggestion, this is something I had trouble with when I was learning regex. Non-greedy not only matches as little as possible, but it also *doesn't backtrack*; This is sort of an example that gave me trouble until I read about backtracking in the man page. $string = "<foo>...</foo><bar>...</bar>"; # This matches <foo></bar>, not what we want. $string =~ /\<.*\>(.*)\</.*\>/; # this works, i think. $string =~ /\<.*?\>(.*?)\</.*?\>/; Even if it doesn't work, I hope you get the idea. I'd show the exact example of what I was doing when I ran into this, but it's overly-complicated (removing parts of tags from a string, where there's a list of tags and attributes for those tags that need to be removed). Greediness relies a lot on backtracking, so to avoid frustrating another fledgling perl coder with the same problems, it's at least worth a note wherever greediness is in issue.
In Section
Tutorials
|
|
||||||||||||||||||||||||||||||||