Is it possible to emulate possessive quantifiers (.NET doesn’t support it) using atomic grouping (or in other way)?
Note. I found that (x+x+)++y
can be replaced with (?>(x+x+)+)y
, but this is just an example and I don’t know whether always {something}@+
equals to (?>{something}@)
(where @
is a quantifier).
A possessive quantifier is similar to greedy quantifier. It indicates the engine to start by checking the entire string.It is different in the sense if it doesn't work, if match failed and there is no looking back. Following are various examples of Possessive Quantifiers using regular expression in java.
Quantifiers specify how many instances of a character, group, or character class must be present in the input for a match to be found.
Yup. May I quote the master himself, Jeffrey Friedl, from page 142 of his classic Mastering Regular Expressions (3rd Edition):
"In one sense, possessive quantifiers are just syntactic sugar, as they can be mimicked with atomic grouping. Something like
.++
has exactly the same result as(?>.+)
, although a smart implementation can optimize possessive quantifiers more than atomic grouping."
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With