Other Resources:

"non-greedy" on quantified subpatterns +? *? {}?

Q

How turn off the the greediness of quantified subpatterns? I want the quantified subpattern to be matched the minimum number of times possible?

How to create a "non-greedy" quantified subpattern on this PHP script: if ($t=10): echo "Just started...!"; endif; if ($t=11): echo "Hungry!"; endif; if ($t=12): echo ""Ah, lunch-time!"; endif;?

✍: FYIcenter.com

A

You can turn off the "greedy" behavior of a quantified subpattern by adding '?' immediately after the quantifier. This will force the quantified subpattern to be matched the minimum number of times possible.

For example: when applying pattern /a+?a/ to "aaaa", the quantified subpattern /a+?/ will match the first character "a" followed by the next subpattern /a/ to match the second character "a". In other words,

(a+?)a # matches 'aaaa' with $1 for first 'a', $2 for second 'a'

Another example:

(.+?). # matches 'abcd' with $1 for 'a', $2 for 'c'

The regular expression to show a "non-greedy" quantified subpattern on the given PHP script:

```
(if .+? endif;)
if - matches 'if'
.+? endif; - matches the minimum number of s possible
while 'end if;' is at the end
```

2013-01-26, 2767👍, 0💬

Popular Posts:

Are you having problems using regular expressions when processing text strings in your applications ...

All credit card numbers issued by JCB have 3 sets of numbers: JCB cards start with 2131 have 15 digi...

Are you having problems using regular expressions when processing text strings in your applications ...

How to capture the MSN (Microsoft Network) bot entries from Web log file? Here are some Web log file...

All credit card numbers issued by JCB have 3 sets of numbers: JCB cards start with 2131 have 15 digi...