On Mon, 3 Mar 2003 19:51:09 -0500, you wrote: >preg_match_all('/begincommand(.*)endcommand/',$messagebody,$commandOuttake,P >REG_PATTERN_ORDER); [...] > How >do I change the criteria to stop at the first instance of a match? How do I >parse out only up to the first instance of "endcommand"?
Here's an excerpt from 'perldoc perlre': By default, a quantified subpattern is "greedy", that is, it will match as many times as possible (given a particular starting location) while still allowing the rest of the pattern to match. If you want it to match the minimum number of times possible, follow the quantifier with a "?". Note that the meanings don't change, just the "greediness". As John Holmes has already pointed out, you can add the U modifier, but I would recommend that you learn to use the ? quantifier, since this is more portable as Perl doesn't recognize the U modifier. So you'd want to change this: /begincommand(.*)endcommand/ to this: /begincommand(.*?)endcommand/ If you have an install of Perl handy I also recommend taking a look at 'perldoc perlretut', I've found it very helpful. HTH... -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php