Regex Character | Description |
---|---|
\ | Marks the next character as a special character, a literal, 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 start position 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 position 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 the preceding subexpression zero or one time. For example, "do(es)?" matches "do" or "does". ? is equivalent to {0,1}. |
{n} | n is a non-negative integer. Matches exactly n times. For example, "o{2}" does not match "Bob" but matches two "o"s in "food". |
{n,} | n is a non-negative integer. Matches at least n times. For example, "o{2,}" does not match "Bob" but matches all "o"s in "foooood". "o{1,}" is equivalent to "o+". "o{0,}" is equivalent to "o*". |
{n,m} | m and n are non-negative integers, where n<=m. Matches at least n times and at most m times. For example, "o{1,3}" matches the first three "o"s in "foooood". "o{0,1}" is equivalent to "o?". Note that there can be no space between the comma and the two numbers. |
? | When this character immediately follows any other quantifier (*, +, ?, {n}, {n,}, {n,m}), the matching pattern is non-greedy. The non-greedy pattern matches as little of the searched string as possible, whereas the default greedy pattern matches as much of the searched string as possible. For example, for the string "oooo", "o+?" matches a single "o", while "o+" matches all "o"s. |
. | Matches any single character except "\n". To match any character including "\n", use a pattern like "(.\n)". |
(pattern) | Matches pattern and captures the match. The captured match can be obtained from the resulting Matches collection, using the SubMatches collection in VBScript or $0...$9 properties in JScript. To match a parenthesis character, use "\(“ or “\)”. |
(?:pattern) | Matches pattern but does not capture the match; this is a non-capturing match, and it is not stored for later use. This is useful when combining parts of a pattern with the "or" character (|). For example, “industr(?:y|ies)” is a shorter expression than “industry|industries”. |
(?=pattern) | Positive lookahead, matches the search string at any point where pattern begins. This is a non-capturing match, meaning the match is not stored for later use. For example, "Windows(?=95|98|NT|2000)" matches "Windows" in "Windows2000" but not "Windows" in "Windows3.1". Lookaheads do not consume characters, meaning that after one match is found, the search immediately begins again after the last match, rather than after the character containing the lookahead. |
(?!pattern) | Negative lookahead, matches the search string at any point where pattern does not begin. This is a non-capturing match, meaning the match is not stored for later use. For example, "Windows(?!95|98|NT|2000)" matches "Windows" in "Windows3.1" but not "Windows" in "Windows2000". Lookaheads do not consume characters, meaning that after one match is found, the search immediately begins again after the last match, rather than after the character containing the lookahead. |
(?<=pattern) | Positive lookbehind, similar to positive lookahead but in the reverse direction. For example, "(?<=95|98|NT|2000)Windows" matches "Windows" in "2000Windows", but not in "3.1Windows". |
(?<!pattern) | Negative lookbehind, similar to negative lookahead but in the reverse direction. For example, "(?<!95|98|NT|2000)Windows" matches "Windows" in "3.1Windows", but not in "2000Windows". |
x|y | Matches x or y. For example, "z|food" matches "z" or "food". "(z|f)ood" matches "zood" or "food". |
[xyz] | Character set. Matches any one of the contained characters. For example, “[abc]” matches “a” in “plain”. |
[^xyz] | Negated character set. Matches any character not contained. For example, “[^abc]” matches “p” in “plain”. |
[a-z] | Character range. Matches any character within the specified range. For example, “[a-z]” matches any lowercase letter between “a” and “z”. |
[^a-z] | Negated character range. Matches any character not within the specified range. For example, “[a-z]” matches any character not between “a” and “z”. |
\b | Matches a word boundary, which is the position between a word and a space. For example, “er\b” matches “er” in “never”, but not “er” in “verb”. |
\B | Matches a non-word boundary. “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. x must be one of A-Z or a-z. Otherwise, c is treated as a literal “c” character. |
\d | Matches a digit character. Equivalent to [0-9]. |
\D | Matches a non-digit character. Equivalent to [^0-9]. |
\f | Matches a form feed. Equivalent to \x0c and \cL. |
\n | Matches a newline. Equivalent to \x0a and \cJ. |
\r | Matches a carriage return. Equivalent to \x0d and \cM. |
\s | Matches any whitespace character, including space, tab, form feed, etc. Equivalent to [\f\n\r\t\v]. |
\S | Matches any non-whitespace character. Equivalent to [^\f\n\r\t\v]. |
\t | Matches a tab. Equivalent to \x09 and \cI. |
\v | Matches a vertical tab. Equivalent to \x0b and \cK. |
\w | Matches any word character, including 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 escape value. Hexadecimal escape values must be exactly two digits long. For example, “\x41” matches “A”. “\x041” is equivalent to “\x04&1”. Regular expressions can use ASCII encoding. |
\num | Matches num, where num is a positive integer. References the matched subexpression. For example, “(.)\1” matches two consecutive identical characters. |
\n | Identifies an octal escape value or a backreference. If \n has at least n obtained subexpressions, n is a backreference. Otherwise, if n is an octal digit (0-7), it is an octal escape value. |
\nm | Identifies an octal escape value or a backreference. If \nm has at least nm obtained subexpressions, nm is a backreference. If \nm has at least n obtained, n is a backreference followed by literal m. If none of these conditions are met, and both n and m are octal digits (0-7), \nm matches octal escape value nm. |
\nml | If n is an octal digit (0-3), and m and l are both octal digits (0-7), matches 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 (©). |
Username | /^[a-z0-9_-]{3,16}$/ |
---|---|
Password | /^[a-z0-9_-]{6,18}$/ |
Password 2 | (?=^.{8,}$)(?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-z])(?!.*\n).*$ (Consists of numbers, uppercase letters, lowercase letters, and punctuation marks, must have all four, minimum of 8 characters) |
Hexadecimal Value | /^#?([a-f0-9]{6}|[a-f0-9]{3})$/ |
/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/ /^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/or\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* | |
URL | /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ or [a-zA-z]+://[^\s]* |
IP Address | /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/ /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ or ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?) |
HTML Tag | /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/or<(.*)(.*)>.*<\/\1>|<(.*) \/> |
Remove Code\\Comments | (?<!http:|\S)//.*$ |
Match Double-byte Characters (Including Chinese) | [^\x00-\xff] |
Chinese Characters | [\u4e00-\u9fa5] |
Chinese Characters in Unicode Range | /^[\u2E80-\u9FFF]+$/ |
Chinese and Full-width Punctuation Characters | [\u3000-\u301e\ufe10-\ufe19\ufe30-\ufe44\ufe50-\ufe6b\uff01-\uffee] |
Date (Year-Month-Day) | (\d{4}|\d{2})-((0?([1-9]))|(1[1|2]))-((0?[1-9])|([12]([1-9]))|(3[0|1])) |
Date (Month/Day/Year) | ((0?[1-9]{1})|(1[1|2]))/(0?[1-9]|([12][1-9])|(3[0|1]))/(\d{4}|\d{2}) |
Time (Hour:Minute, 24-hour format) | ((1|0?)[0-9]|2[0-3]):([0-5][0-9]) |
Fixed Phone Number in Mainland China | (\d{4}-|\d{3}-)?(\d{8}|\d{7}) |
Mobile Phone Number in Mainland China | 1\d{10} |
Postal Code in Mainland China | [1-9]\d{5} |
ID Number in Mainland China (15 or 18 digits) | \d{15}(\d\d[0-9xX])? |
Non-negative Integer (Positive Integer or Zero) | \d+ |
Positive Integer | [0-9]*[1-9][0-9]* |
Negative Integer | -[0-9]*[1-9][0-9]* |
Integer | -?\d+ |
Decimal | (-?\d+)(\.\d+)? |
Blank Line | \n\s*\r or \n\n(editplus) or ^[\s\S ]*\n |
QQ Number | [1-9]\d{4,} |
Word Not Containing "abc" | \b((?!abc)\w)+\b |
Match Leading and Trailing Whitespace | ^\s*|\s*$ |
Editing Commonly Used | The following are some replacements for special Chinese (editplus) ^[0-9].*\n ^[^第].*\n ^[习题].*\n ^[\s\S ]*\n ^[0-9]*\. ^[\s\S ]*\n <p[^<>*]> href="javascript:if\(confirm\('(.*?)'\)\)window\.location='(.*?)'" <span style=".[^"]*rgb\(255,255,255\)">.[^<>]*</span> <DIV class=xs0>[\s\S]*?</DIV> |
Regex syntax provides a quick reference for commonly used regular expressions, regex syntax lookup, common regex syntax, basic regex syntax, subexpression syntax, regex modifiers, greedy and non-greedy modes, to achieve string manipulation in a simple and quick way.