On 8/2/07, Tony Heal <[EMAIL PROTECTED]> wrote:
> So since '?' will match the last character, group, or class 0 or 1 time the
> it matches the group of whatever happens to
> be in '.*' up to any spaces that are attached to the '$'.
>
> Is that correct?
snip
No, the ? in .*? is not the same as the ? in [abc]? just like neither
of them are the same as the ? in (?foo) The character is being
reused, but the meanings are completely separate. The ? character
when used with a quantifier (i.e. *, +, ?, {n}, or {n,m}) means "match
the smallest possible string" (non-greedy). The default for those
modifiers is to match the largest string possible (greedy).
from perldoc perlre:
The following standard quantifiers are recognized:
* Match 0 or more times
+ Match 1 or more times
? Match 1 or 0 times
{n} Match exactly n times
{n,} Match at least n times
{n,m} Match at least n but not more than m times
snip
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":
*? Match 0 or more times
+? Match 1 or more times
?? Match 0 or 1 time
{n}? Match exactly n times
{n,}? Match at least n times
{n,m}? Match at least n but not more than m times
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/