出處:RegExLib.com Regular Expression Cheat Sheet (.NET)
元字元 |
說明 |
^ |
匹配字串的開始位置 |
$ |
匹配字串的結束位置 |
. |
匹配任意單個字元(分行符號 \n 除外) |
| |
交替 |
{…} |
指定要限定的數量 |
[...] |
指定要匹配的字元集 |
(…) |
對錶達式進行邏輯分組 |
* |
匹配零或多個前面的運算式 |
+ |
匹配一或多個前面的運算式 |
? |
匹配零或一個前面的運算式 |
\ |
放在上面任何一個字元之前,表示匹配該字元本身。放在其他特殊字元後面,表示字元轉義(見下面) |
字元轉義 |
說明 |
原始字元 |
除 . $ ^ { [ ( | ) ] } * + ? \ 之外的字元均匹配自身 |
\a |
匹配鈴聲(鬧鈴)\u0007 |
\b |
在[]中匹配一個空格 \u0008,在其他情況下匹配字邊界(位於 \w 和 \W 字元之間) |
\t |
匹配製表符 \u0009 |
\r |
匹制斷行符號符 \u000D |
\v |
匹配垂直定位字元 \u000B |
\f |
匹配換頁符 \u000C |
\n |
匹配分行符號 \u000A |
\e |
匹配退出鍵(符) \u001B |
\040 |
匹配以八進位表示的 ASCII 字元(最多三位元);在沒有前置字元為零的情況下,如果只有一位元字或者相應數字與某個擷取的群組的編號對應,那就是反向引用(backreference)。字元 \040 表示一個空格。 |
\x20 |
匹配以十六進位表示的 ASCII 字元(兩位元) |
\cC |
匹配 ASCII 控制符,例如 \cC 匹配 Ctrl+C |
\u0020 |
匹配以十六進位表示的 Unicode 字元 |
\* |
反斜線後面如果不是一個可轉義的字元,則匹配該字元本身。例如,\* 就相當於\x2A |
字元類 |
說明 |
. |
匹配除 \n 之外的任一字元。 |
[aeiou] |
匹配特定字元集中包含的任意一個字元 |
[^aeiou] |
匹配特定字元集中不包含的任意一個字元 |
[0-9a-fA-F] |
連字號(-)用來指定連續的字元範圍 |
\p{name} |
匹配由{name}指定的命名字元類中的任一字元 |
\P{name} |
匹配不包含在{name}指定的組或區塊範圍中的文本 |
\w |
匹配英文數字字母字元,在指定相容ECMAScript的情況下,等價於[a-zA-Z0-9] |
\W |
匹配非英文數字字母字元,在指定相容ECMAScript的情況下,等價於[^a-zA-Z0-9] |
\s |
匹配任意空白字元,在指定相容ECMAScript的情況下,等價於[\f\n\r\t\v] |
\S |
匹配任意非空白字元,在指定相容ECMAScript的情況下,等價於[^\f\n\r\t\v] |
\d |
匹配數字字元,在指定相容ECMAScript的情況下,等價於[0-9] |
\D |
匹配非數字字元,在指定相容ECMAScript的情況下,等價於[^0-9] |
英文版:
Metacharacters Defined |
MChar |
Definition |
^ |
Start of a string. |
$ |
End of a string. |
. |
Any character (except \n newline) |
| |
Alternation. |
{...} |
Explicit quantifier notation. |
[...] |
Explicit set of characters to match. |
(...) |
Logical grouping of part of an expression. |
* |
0 or more of previous expression. |
+ |
1 or more of previous expression. |
? |
0 or 1 of previous expression; also forces minimal matching when an expression might match several strings within a search string. |
\ |
Preceding one of the above, it makes it a literal instead of a special character. Preceding a special matching character, see below. |
Metacharacter Examples |
Pattern |
Sample Matches |
^abc |
abc, abcdefg, abc123, ... |
abc$ |
abc, endsinabc, 123abc, ... |
a.c |
abc, aac, acc, adc, aec, ... |
bill|ted |
ted, bill |
ab{2}c |
abbc |
a[bB]c |
abc, aBc |
(abc){2} |
abcabc |
ab*c |
ac, abc, abbc, abbbc, ... |
ab+c |
abc, abbc, abbbc, ... |
ab?c |
ac, abc |
a\sc |
a c |
Character Escapes http://tinyurl.com/5wm3wl |
Escaped Char |
Description |
ordinary characters |
Characters other than . $ ^ { [ ( | ) ] } * + ? \ match themselves. |
\a |
Matches a bell (alarm) \u0007. |
\b |
Matches a backspace \u0008 if in a []; otherwise matches a word boundary (between \w and \W characters). |
\t |
Matches a tab \u0009. |
\r |
Matches a carriage return \u000D. |
\v |
Matches a vertical tab \u000B. |
\f |
Matches a form feed \u000C. |
\n |
Matches a new line \u000A. |
\e |
Matches an escape \u001B. |
\040 |
Matches an ASCII character as octal (up to three digits); numbers with no leading zero are backreferences if they have only one digit or if they correspond to a capturing group number. (For more information, see Backreferences.) For example, the character \040 represents a space. |
\x20 |
Matches an ASCII character using hexadecimal representation (exactly two digits). |
\cC |
Matches an ASCII control character; for example \cC is control-C. |
\u0020 |
Matches a Unicode character using a hexadecimal representation (exactly four digits). |
\* |
When followed by a character that is not recognized as an escaped character, matches that character. For example, \* is the same as \x2A. |
Character Classes http://tinyurl.com/5ck4ll |
Char Class |
Description |
. |
Matches any character except \n. If modified by the Singleline option, a period character matches any character. For more information, see Regular Expression Options. |
[aeiou] |
Matches any single character included in the specified set of characters. |
[^aeiou] |
Matches any single character not in the specified set of characters. |
[0-9a-fA-F] |
Use of a hyphen (–) allows specification of contiguous character ranges. |
\p{name} |
Matches any character in the named character class specified by {name}. Supported names are Unicode groups and block ranges. For example, Ll, Nd, Z, IsGreek, IsBoxDrawing. |
\P{name} |
Matches text not included in groups and block ranges specified in {name}. |
\w |
Matches any word character. Equivalent to the Unicode character categories [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]. If ECMAScript-compliant behavior is specified with the ECMAScript option, \w is equivalent to [a-zA-Z_0-9]. |
\W |
Matches any nonword character. Equivalent to the Unicode categories [^\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]. If ECMAScript-compliant behavior is specified with the ECMAScript option, \W is equivalent to [^a-zA-Z_0-9]. |
\s |
Matches any white-space character. Equivalent to the Unicode character categories [\f\n\r\t\v\x85\p{Z}]. If ECMAScript-compliant behavior is specified with the ECMAScript option, \s is equivalent to [ \f\n\r\t\v]. |
\S |
Matches any non-white-space character. Equivalent to the Unicode character categories [^\f\n\r\t\v\x85\p{Z}]. If ECMAScript-compliant behavior is specified with the ECMAScript option, \S is equivalent to [^ \f\n\r\t\v]. |
\d |
Matches any decimal digit. Equivalent to \p{Nd} for Unicode and [0-9] for non-Unicode, ECMAScript behavior. |
\D |
Matches any nondigit. Equivalent to \P{Nd} for Unicode and [^0-9] for non-Unicode, ECMAScript behavior. |