出處: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.