asp.net.ph

Skip Navigation LinksGetting Started > ASP.NET Base Types > Regular Expressions > Details of Regular Expression Behavior > Quantifiers and Empty Matches

Quantifiers and Empty Matches

Getting Started   ASP.NET Base Types   Details of Regular Expression Behavior


Quantifiers *, +, {n,m} ( and their lazy counterparts ) never repeat after an empty match when the minimum number n has been matched. This rule prevents quantifiers from entering infinite loops on empty matches when m is infinite ( although the rule applies even if m is not infinite ).

For example, ( a? ) * matches the string "aaa" and captures substrings in the pattern ( a ) ( a ) ( a ) ( ). Note that there is no fifth empty capture, because the fourth empty capture causes the quantifier to stop repeating.

Similarly, ( a\1| ( ? ( 1 ) \1 ) ) {0,2} matches the empty string rather than "a" because it never tries the expansion ( ) ( a ). The {0,2} quantifier allows only empty matches in the last iteration. In contrast, ( a\1| ( ? ( 1 ) \1 ) ) {2} actually matches "a" because it does try ( ) ( a ) since the minimum number of iterations, 2, forces the engine to repeat after an empty match.

See Also

Regular Expressions



© 2025 Reynald Nuñez and asp.net.ph. All rights reserved.

If you have any question, comment or suggestion
about this site, please send us a note