出处:RegExLib.comRegularExpressionCheatSheet(.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] |
英文版:
MetacharactersDefined
MChar
Definition
^ |
Startofastring. |
$ |
Endofastring. |
. |
Anycharacter(except\nnewline) |
| |
Alternation. |
{...} |
Explicitquantifiernotation. |
[...] |
Explicitsetofcharacterstomatch. |
(...) |
Logicalgroupingofpartofanexpression. |
* |
0ormoreofpreviousexpression. |
+ |
1ormoreofpreviousexpression. |
? |
0or1ofpreviousexpression;alsoforcesminimalmatchingwhenanexpressionmightmatchseveralstringswithinasearchstring. |
\ |
Precedingoneoftheabove,itmakesitaliteralinsteadofaspecialcharacter.Precedingaspecialmatchingcharacter,seebelow. |
MetacharacterExamples
Pattern
SampleMatches
^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 |
ac |
CharacterEscapeshttp://tinyurl.com/5wm3wl
EscapedChar
Description
ordinarycharacters |
Charactersotherthan.$^{[(|)]}*+?\matchthemselves. |
\a |
Matchesabell(alarm)\u0007. |
\b |
Matchesabackspace\u0008ifina[];otherwisematchesawordboundary(between\wand\Wcharacters). |
\t |
Matchesatab\u0009. |
\r |
Matchesacarriagereturn\u000D. |
\v |
Matchesaverticaltab\u000B. |
\f |
Matchesaformfeed\u000C. |
\n |
Matchesanewline\u000A. |
\e |
Matchesanescape\u001B. |
\040 |
MatchesanASCIIcharacterasoctal(uptothreedigits);numberswithnoleadingzeroarebackreferencesiftheyhaveonlyonedigitoriftheycorrespondtoacapturinggroupnumber.(Formoreinformation,seeBackreferences.)Forexample,thecharacter\040representsaspace. |
\x20 |
MatchesanASCIIcharacterusinghexadecimalrepresentation(exactlytwodigits). |
\cC |
MatchesanASCIIcontrolcharacter;forexample\cCiscontrol-C. |
\u0020 |
MatchesaUnicodecharacterusingahexadecimalrepresentation(exactlyfourdigits). |
\* |
Whenfollowedbyacharacterthatisnotrecognizedasanescapedcharacter,matchesthatcharacter.Forexample,\*isthesameas\x2A. |
CharacterClasseshttp://tinyurl.com/5ck4ll
CharClass
Description
. |
Matchesanycharacterexcept\n.IfmodifiedbytheSinglelineoption,aperiodcharactermatchesanycharacter.Formoreinformation,seeRegularExpressionOptions. |
[aeiou] |
Matchesanysinglecharacterincludedinthespecifiedsetofcharacters. |
[^aeiou] |
Matchesanysinglecharacternotinthespecifiedsetofcharacters. |
[0-9a-fA-F] |
Useofahyphen(?)allowsspecificationofcontiguouscharacterranges. |
\p{name} |
Matchesanycharacterinthenamedcharacterclassspecifiedby{name}.SupportednamesareUnicodegroupsandblockranges.Forexample,Ll,Nd,Z,IsGreek,IsBoxDrawing. |
\P{name} |
Matchestextnotincludedingroupsandblockrangesspecifiedin{name}. |
\w |
Matchesanywordcharacter.EquivalenttotheUnicodecharactercategories[\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}].IfECMAScript-compliantbehaviorisspecifiedwiththeECMAScriptoption,\wisequivalentto[a-zA-Z_0-9]. |
\W |
Matchesanynonwordcharacter.EquivalenttotheUnicodecategories[^\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}].IfECMAScript-compliantbehaviorisspecifiedwiththeECMAScriptoption,\Wisequivalentto[^a-zA-Z_0-9]. |
\s |
Matchesanywhite-spacecharacter.EquivalenttotheUnicodecharactercategories[\f\n\r\t\v\x85\p{Z}].IfECMAScript-compliantbehaviorisspecifiedwiththeECMAScriptoption,\sisequivalentto[\f\n\r\t\v]. |
\S |
Matchesanynon-white-spacecharacter.EquivalenttotheUnicodecharactercategories[^\f\n\r\t\v\x85\p{Z}].IfECMAScript-compliantbehaviorisspecifiedwiththeECMAScriptoption,\Sisequivalentto[^\f\n\r\t\v]. |
\d |
Matchesanydecimaldigit.Equivalentto\p{Nd}forUnicodeand[0-9]fornon-Unicode,ECMAScriptbehavior. |
\D |
Matchesanynondigit.Equivalentto\P{Nd}forUnicodeand[^0-9]fornon-Unicode,ECMAScriptbehavior. |