It is the difference between greedy and non-greedy quantifiers.
Consider the input
101000000000100.
Using
1.*1, * is greedy - it will match all the way to the end, and then backtrack until it can match 1, leaving you with 1010000000001..*? is non-greedy. * will match nothing, but then will try to match extra characters until it matches 1, eventually matching 101.
All quantifiers have a non-greedy mode:
.*?, .+?, .{2,6}?, and even .??.
In your case, a similar pattern could be
<([^>]*)> - matching anything but a greater-than sign (strictly speaking, it matches zero or more characters other than > in-between < and >).
Reference:https://stackoverflow.com/questions/3075130/what-is-the-difference-between-and-regular-expressions
No comments:
Post a Comment