Regular expression patterns
Summary of util.Regexp.compile()
pattern syntax.
Defining regular expressions in strings literals
Regular expression often use the backslash character to start a pattern element. For example, the
backslash followed by the lowercase letter d (\d
) expresses a digit at the given
position.
Consider using back quotes as string delimiters for regular expressions: This will define a raw
string literal without having backslash interpreted as the escape character as in single or double
quoted string literals:
LET re = util.Regexp.compile(`^\d\d$`)
For more details, see Text literals.
Character classes
Syntax | Description |
---|---|
. (dot) |
Any single character except '\n ', '\r '. |
\d |
Any digit. Equivalent to [0-9] . |
\D |
Any character that is not a digit. Equivalent to [^0-9] . |
\w |
ASCII letter, digit or underscore. Equivalent to [A-Za-z0-9_] . |
\W |
Any character that is not an ASCII letter, digit or underscore. Equivalent to
[^A-Za-z0-9_] . |
\b |
Any white space character, including space, tab, form feed, line feed, and other Unicode spaces. |
\B |
Any character that is not a white space. |
\t |
An horizontal tab. |
\r |
A carriage return. |
\n |
A linefeed. |
\v |
A vertical tab. |
\f |
A form-feed. |
\cx |
The control character corresponding to x. |
\xhh |
The character with the code hh (two hexadecimal digits). |
Assertions
Syntax | Description |
---|---|
^ |
The beginning of the input. |
$ |
The end of the input. |
\b |
A word boundary. |
\B |
Not a word boundary. |
\G |
The end of the previous match. |
x(?=y) |
Matches "x" only if "x" is followed by "y". |
x(?!y) |
Matches "x" only if "x" is not followed by "y". |
(?<=y)x |
Matches "x" only if "x" is preceded by "y". |
(?<!y)x |
Matches "x" only if "x" is not preceded by "y". |
Groups and ranges
Syntax | Description |
---|---|
x|y |
Matches either "x" or "y". |
[x] |
Matches any one of the enclosed characters. |
[^x] |
Matches anything that is not enclosed in the brackets. |
(x) |
Matches "x" and remembers the match. |
(?:x) |
Matches "x" but does not remember the match. |
(?<name>x) |
Matches "x" and stores it on the groups property of the returned matches under the name specified by name. The angle brackets (< and >) are required for the group name. |
\nn |
A back reference to the last substring matching the nn'st parenthetical in the regular expression (counting left parentheses). |
\k<name> |
A back reference to the last substring matching the named capture group specified by name. |
Quantifiers
Syntax | Description |
---|---|
x* |
Matches the preceding item "x" 0 or more times. |
x+ |
Matches the preceding item "x" 1 or more times. Equivalent to
{1,} . |
x? |
Matches the preceding item "x" 0 or 1 times. If used immediately after any
of the quantifiers * , + , ? , or
{} , makes the quantifier non-greedy (matching the minimum number of times), as
opposed to the default, which is greedy (matching the maximum number of times). |
x{n} |
Where "n" is a positive integer, matches exactly "n" occurrences of the preceding item "x". |
x{n,} |
Where "n" is a positive integer, matches at least "n" occurrences of the preceding item "x". |
x{n,m} |
Where "n" is 0 or a positive integer, "m" is a positive
integer, and m>n , matches at least
"n" and at most "m" occurrences of the preceding item
"x". |