Quantifiers

In the following table, you can find the patterns for quantifiers, which specify how many instances of a character, group, or character class must be present in an input for a match to be found.

Pattern

Description

Example

{n}

This matches exactly n occurrences of a regular expression.

/d{5}/ matches "12345" (five digits) in "1234567890".

{n,}

This matches n or more occurrences of a regular expression.

/d{5,}/ matches "1234567890" (minimum of five digits) in "1234567890".

{n,m}

This matches n to m number of occurrences of a regular expression.

/d{5,7}/ matches "1234567" (minimum of five digits and a maximum of seven digits) in "1234567890".

*

This matches zero or more occurrences and is equivalent to {0,}.

/fo*/ matches "foo" in "foo" and matches "foooooooo" in "fooooooooled".

+

This matches one or more occurrences and is equivalent to {1,}.

/o+/ matches "oo" in "foo".

?

This matches zero or one occurrences and is equivalent to {0,1}.

/fo?/ matches "fo" in "foo" and matches "f" in "fairy".

+?

*?

"?" can also be used following one of the *, +, ?, or {} quantifiers to make the later match nongreedy, or the minimum number of times versus the default maximum.

/d{2,4}?/ matches "12" in the "12345" string, instead of "1234" due to "?" at the end of the quantifier nongreedy.

x(?=y)

Positive lookahead: It matches x only if it's followed by y. Note that y is not included as part of the match, acting only as a required condition.

/Java(?=Script|Hut)/ matches "Java" in "JavaScript" or "JavaHut", but not "JavaLand".

x(?!y)

Negative lookahead: It matches x only if it's not followed by y. Note that y is not included as part of the match, acting only as a required condition.

/^d+(?! years)/ matches "5" in "5 days" or "5 books", but not "5 years".

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset