in reply to Finding out which of a list of patterns matched
What I want to find is the pattern earliest in the list which matches earliest in the text, where matching earlier in the text is more important than being higher up the list.
Does that mean that if multiple patterns match the text you want the one that matches at the point closest to the start of the string? Because, if so, none of the solutions given so far will do that that I can see. Even your suggested use of /foo|bar|baz/ won't do this as perl tries the patterns from left to right and gives you the one that matches first whether or not it's "earliest" in the string. I think that if you want this behavior, you'll have to loop over each pattern recording where they matched (if at all) and then select one with the lowest match position.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Finding out which of a list of patterns matched
by lemnisca (Sexton) on Jan 23, 2006 at 00:49 UTC | |
by duff (Parson) on Jan 23, 2006 at 15:29 UTC |