
Resin's regular expressions are based on Perl5 but matche 16-bit
strings. The JavaScript interface is based on Netscape 1.3. See
string objects and regular expression objects for API details.
The regexp syntax follows Perl5.
Characters escape the same as
for strings.
Regexp Literals
|
character |
Match character. |
[set] |
Matches any characters in set. |
[^set] |
Matches any characters not in set. |
. |
Matches any character except newline, i.e. [^\n] |
\s |
Matches whitespace, i.e. [ \t\r\n\v\f] |
\S |
Matches non-whitespace, i.e. [^ \t\r\n\v\f] |
\d |
Matches any digit, i.e. [0-9] |
\D |
Matches any non-digit, i.e. [^0-9] |
\w |
Matches any alphanumeric character, i.e. [a-zA-Z0-9_] |
\W |
Matches any non-alphanumeric character, i.e. [^a-zA-Z0-9_] |
ab |
Match a followed by b. |
(a) |
Matches if a matches, storing the submatch. |
\n |
Matches the nth submatch. |
(?:a) |
Match a. Does not store the submatch. |
a|b |
Match if a matches or if b matches. |
a* |
Match as many a as possible. |
a+ |
Match as many a as possible but at least one. |
a? |
Try to match a, otherwise just match. |
a{m,n} |
Try to match at most n repetitions of a, but match at
least m of them. |
a{n} |
Match exactly n repetitions of a. |
a*? |
Match as few a as possible. |
a+? |
Match as few a as possible but at least one. |
a?? |
Try to match without a, otherwise try to match a. |
^ |
Matches at the beginning of the line. |
$ |
Matches at the end of the line. |
\b |
Matches at a word boundary. |
\B |
Matches if not at a word boundary. |
\A |
Matches at the beginning of the string. |
\Z |
Matches at the end of the string. |
\G |
Matches at the beginning of the test (for a /g). |
(?=a) |
Matches only if a follows but do not match a as
part of the matched string. |
(?!a) |
Matches only if a does not follow. |
(?#text) |
Match always. text is just a comment. |
(?imsx) |
Sets the given flag for the entire regular expression. |
Matches any characters in set.
Sets
Pattern |
Name |
Meaning |
x
|
Character match |
Match a
|
x-y
|
Range match |
Match any character from x to y
|
x
y
|
Union |
Match any character in x or y
|
\s |
Space match |
Matches [ \t\r\n\v\f] |
\S |
Non-space match |
Matches [^ \t\r\n\v\f] |
\d |
Digit match |
Matches [0-9] |
\D |
Non-digit match |
Matches [^0-9] |
\w |
Alphanumeric match |
Matches [a-zA-Z0-9_] |
\W |
Non-alphanumeric match |
Matches [^a-zA-Z0-9_] |
"cab".replace(/[ab]/g, '*') |
c** |
"bark".replace(/[a-c]/g, '*') |
**rk |
Matches any characters not in set.
"cab".replace(/[^ab]/g, '*') |
*ab |
"bark".replace(/[^a-c]/g, '*') |
ba** |
Matches any character except newline, i.e. [^\n]
"a yellow cab".search(/c.b/) |
9 |
Matches whitespace, i.e. [ \t\r\n\v\f]
"c a\tb\n".replace(/\s/, ':') |
c:a:b: |
Matches non-whitespace, i.e. [^ \t\r\n\v\f]
Matches any digit, i.e. [0-9]
"buying 500".search(/\d+/) |
7 |
Matches any non-digit, i.e. [^0-9]
Matches any alphanumeric character, i.e. [a-zA-Z0-9_]
Matches any non-alphanumeric character, i.e. [^a-zA-Z0-9_]
Match a followed by b.
"a big car".search(/.ar/) |
6 |
Matches if a matches, storing the submatch.
"repeat a repeat".match(/(.+).* \1/) |
Matches the nth submatch.
Match a. Does not store the submatch.
"big".match(/b(?:i|a)g/)
|
["big"]
|
"bag".match(/b(?:i|a)g/)
|
["bag"]
|
"big".match(/b(i|a)g/)
|
["big", "i"]
|
Match if a matches or if b matches.
Match as many a as possible.
Match as many a as possible but at least one.
Try to match a, otherwise just match.
Try to match at most n repetitions of a, but match at
least m of them. If m is omitted, it is treated
as 0. If n is omitted, it is treated as infinity.
Match exactly n repetitions of a.
Match as few a as possible.
"big bug".match(/b.*?g/)
|
["big"]
|
"big bug".match(/b.*g/)
|
["big bug"]
|
Match as few a as possible but at least one.
Try to match without a, otherwise try to match a.
Matches at the beginning of the line.
Matches at the end of the line.
Matches at a word boundary.
"a big red cab".replace(/\b/g, ":");
|
:a: :big: :red: :cab
|
Matches if not at a word boundary.
Matches at the beginning of the string.
Matches at the end of the string.
Matches at the beginning of the test (for a /g).
Matches only if a follows but do not match a as
part of the matched string.
"500 at 57%".match(/\d+(?=%)/) |
["57"] |
"500 at 57%".match(/\d+/) |
["500"] |
Matches only if a does not follow.
"57% off 500".match(/\d+(?!%|\d)/) |
["500"] |
"57% off 500".match(/\d+/) |
["57"] |
Match always. text is just a comment.
Sets the given flag for the entire regular expression.
Copyright © 1998-2000 Caucho Technology. All rights reserved.
Last modified: Thu, 16 Sep 1999 14:56:48 -0700 (PDT)
|