Character |
Description |
\ |
Marks the next character as a special character, or a literal character, or a backreference, or an octal escape. For example, "n" matches the character "n". "\n" matches a newline character. The sequence "\\" matches "\" and "\(" matches "(". |
^ |
matches the beginning of the input string. If the Multiline property of the RegExp object is set, ^ also matches the position after "\n" or "\r". |
$ |
matches the end of the input string. If the Multiline property of the RegExp object is set, $ also matches the position before "\n" or "\r". |
* |
matches the preceding subexpression zero or more times. For example, zo* matches "z" as well as "zoo". * is equivalent to {0,}. |
+ |
matches the preceding subexpression one or more times. For example, "zo+" matches "zo" and "zoo", but not "z". + is equivalent to {1,}. |
? |
matches zero or one occurrence of the preceding subexpression. For example, "do(es)?" can match "do" in "do" or "does". ? is equivalent to {0,1}. |
{n} |
n is a non-negative integer. Match determined n times. For example, "o{2}" would not match the "o" in "Bob", but would match both o's in "food". |
{n,} |
n is a non-negative integer. Match at least n times. For example, "o{2,}" would not match the "o" in "Bob", but would match all o's in "foooood". "o{1,}" is equivalent to "o+". "o{0,}" is equivalent to "o*". |
{n,m} |
m and n are both non-negative integers, where n<=m. Match at least n times and at most m times. For example, "o{1,3}" will match the first three o's in "fooooood". "o{0,1}" is equivalent to "o?". Note that there can be no spaces between the comma and the two numbers. |
? |
When this character immediately follows any other limiter (*,+,?, {n}, {n,}, {n,m}), the matching pattern is non-greedy. The non-greedy mode matches the search string as little as possible, while the default greedy mode matches the search string as much as possible. For example, for the string "oooo", "o+?" will match a single "o", and "o+" will match all "o". |
. |
matches any single character except "\n". To match any character including "\n", use a pattern like "[.\n]". |
(pattern) |
matches pattern and retrieves this match. The acquired matches can be obtained from the generated Matches collection, using the SubMatches collection in VBScript, and using the $0...$9 properties in JScript. To match parenthesis characters, use "\(" or "\)". |
(?:pattern) |
matches pattern but does not get the matching result, which means it is a non-getting match and is not stored for later use. This is useful when using the or character "(|)" to combine parts of a pattern. For example "industr(?:y|ies)" is a shorter expression than "industry|industries". |
(?=pattern) |
Forward lookahead, matches the search string at the beginning of any string matching pattern. This is a non-acquiring match, that is, the match does not need to be acquired for later use. For example, "Windows(?=95|98|NT|2000)" matches "Windows" in "Windows2000", but not "Windows" in "Windows3.1". Lookaheads don't consume characters, that is, after a match occurs, the search for the next match begins immediately after the last match, not after the character containing the lookahead. |
(?!pattern) |
Negative lookahead, matches the search string at the beginning of any string that does not match pattern. This is a non-acquiring match, that is, the match does not need to be acquired for later use. For example, "Windows(?!95|98|NT|2000)" can match "Windows" in "Windows3.1", but cannot match "Windows" in "Windows2000". Lookahead does not consume characters, that is, after a match occurs, the search for the next match begins immediately after the last match, not after the character containing the lookahead |
x|y |
matches x or y. For example, "z|food" would match either "z" or "food". "(z|f)ood" matches "zood" or "food". |
[xyz] |
character set. Matches any one of the contained characters. For example, "[abc]" would match the "a" in "plain". |
[^xyz] |
Negative character set. Matches any character not contained. For example, "[^abc]" would match the "p" in "plain". |
[a-z] |
character range. Matches any character in the specified range. For example, "[a-z]" matches any lowercase alphabetic character in the range "a" through "z". |
[^a-z] |
Negative character range. Matches any arbitrary character not in the specified range. For example, "[^a-z]" matches any character not in the range "a" through "z". |
\b |
matches a word boundary, that is, the position between a word and a space. For example, "er\b" can match "er" in "never", but not "er" in "verb". |
\B |
matches non-word boundaries. "er\B" matches "er" in "verb", but not "er" in "never". |
\cx |
matches the control character indicated by x. For example, \cM matches a Control-M or carriage return. The value of x must be one of A-Z or a-z. Otherwise, treat c as a literal "c" character. |
\d |
matches a single digit character. Equivalent to [0-9]. |
\D |
matches a non-digit character. Equivalent to [^0-9]. |
\f |
matches a form break. Equivalent to \x0c and \cL. |
\n |
matches a newline character. Equivalent to \x0a and \cJ. |
\r |
matches a carriage return. Equivalent to \x0d and \cM. |
\s |
matches any whitespace character, including spaces, tabs, form feeds, and so on. Equivalent to [\f\n\r\t\v]. |
\S |
matches any non-whitespace character. Equivalent to [^\f\n\r\t\v]. |
\t |
matches a tab character. Equivalent to \x09 and \cI. |
\v |
matches a vertical tab character. Equivalent to \x0b and \cK. |
\w |
matches any word character including an underscore. Equivalent to "[A-Za-z0-9_]". |
\W |
matches any non-word character. Equivalent to "[^A-Za-z0-9_]". |
\xn |
matches n, where n is a hexadecimal escaped value. Hex escape values must be a certain two digits long. For example, "\x41" matches "A". "\x041" is equivalent to "\x04&1". ASCII encoding can be used in regular expressions. . |
\num |
matches num, where num is a positive integer. A reference to the hit that was fetched. For example, "(.)\1" matches two consecutive identical characters. |
\n |
identifies an octal escape value or a backreference. If \n is preceded by at least n fetched subexpressions, then n is a backreference. Otherwise, if n is an octal digit (0-7), then n is an octal escape value. |
\nm |
identifies an octal escape value or a backreference. nm is a backreference if \nm is preceded by at least nm obtained subexpressions. If \nm is preceded by at least n fetches, n is a backreference followed by the literal m. If none of the preceding conditions are met, then \nm will match the octal escape value nm if both n and m are octal digits (0-7). |
\nml |
If n is an octal digit (0-3), and both m and l are octal digits (0-7), then match the octal escape value nml. |
\un |
matches n, where n is a Unicode character represented by four hexadecimal digits. For example, \u00A9 matches the copyright symbol (?). |