正则表达式语言 - 快速参考
- 格式:pdf
- 大小:261.51 KB
- 文档页数:8
“Error!”+“\u0007”中 的“\u0007”
“\b\b\b\b”中 的“\b\b\b\b”
“item1\titem2\t”中 的“item1\t”和“item2\t”
“\r\nTheseare\ntwo lines.”中的“\r\nThese”
匹配
“901” “901-” “-901-333”中的 “-333”
\A 匹配必须出现在字符串的开头。
\A\d{3}
“901” “901-”
\Z 匹配必须出现在字符串的末尾或出现在字符串末尾 的\n之前。
-\d{3}\Z
“-901-333”中的 “-333”
\z 匹配必须出现在字符串的末尾。
-\d{3}\z
\b
在字符类中,与退格键\u0008匹配。
\t
与制表符\u0009匹配。
\r
与回车符\u000D匹配。(\r与换行符\n不是等效的。)
\v
与垂直制表符\u000B匹配。
\f
与换页符\u000C匹配。
\n
与换行符\u000A匹配。
模式
匹配
\a [\b]{3,} (\w+)\t \r\n(\w+)
分组构造
说明
模式
匹配
( subexpression )
捕获匹配的子表达式并将其分配 到一个从1开始的序号中。
(\w)\1
“deep”中的“ee”
(?<name> subexpression )
将匹配的子表达式捕获到一个命 名组中。
(?
“deep”中的“ee”
<double>\w)\k<double>
(?<name1name2> subexpression )
定义平衡组定义。有关更多信 息,请参见正则表达式中的分组 构造中的“平衡组定义”部分。
(((?'Open'\()[^\(\)]*)+ ((?'Close-Open'\))[^\ (\)]*)+)*(?(Open)(?!))$
“3+2^((1-3)*(3-1))”中的“((13)*(3-1))”
(?: subexpression )
定义非捕获组。Biblioteka Write(?:Line)?
“Console.WriteLine()”中 的“WriteLine”
“Console.Write(value)”中 的“Write”
(?imnsximnsx:
subexpression )
应用或禁用subexpression中指 定的选项。有关详细信息,请参
阅正则表达式选项。
A\d{2}(?i:\w+)\b
“A12xlA12XLa12xl”中 的“A12xl”和“A12XL”
(?= subexpression )
零宽度正预测先行断言。
\w+(?=\.)
“Heis.Thedogran.Thesunis out.”中 的“is”、“ran”和“out”
字)字符之间的边界上。
的“themtheme”、“themthem”
\B 匹配不得出现在\b边界上。 返回页首
\Bend\w*\b
“endsendsendurelender”中 的“ends”和“ender”
分组构造
分组构造描述了正则表达式的子表达式,通常用于捕获输入字符串的子字符串。分组构造包括下表中列出的语言元素。有 关更多信息,请参见正则表达式中的分组构造。
{n
匹配上一个元素至少n次,但次数尽可 "\d{2,}?" “166”,“29”和“1930”
,}?
能少。
{n, 匹配上一个元素的次数介于n和m之 m}? 间,但次数尽可能少。
返回页首
"\d{3,5}?" “166”、“17668” “193024”中的“193”、“024”
反向引用构造
字符类
说明
模式
[
匹配character_group中的任何单个字 [ae]
character_group 符。默认情况下,匹配区分大小写。
]
[^ character_group ]
求反:与不在character_group中的任 何单个字符匹配。默认情况 下,character_group中的字符区分大 小写。
字符转义 字符类 定位点 分组构造 限定符 反向引用构造 替换构造 替换 正则表达式选项 其他构造
字符转义
正则表达式中的反斜杠字符(\)指示其后跟的字符是特殊字符(如下表所示),或应按原义解释该字符。有关更多信息,请 参见正则表达式中的字符转义。
转义 字符
说明
\a
与报警(bell)符\u0007匹配。
模式 (\w)\1 (?<char>\w)\k<char>
匹配 “seek”中的“ee” “seek”中的“ee”
替换构造
替换构造用于修改正则表达式以启用either/or匹配。这些构造包括下表中列出的语言元素。有关更多信息,请参见正则表 达式中的备用构造。
替换构造 说明
模式
匹配
|
匹配以竖线(|)字符分隔的任何一个元素。
[^aei]
匹配 “gray”中的“a” “lane”中的“a”和“e” “reign”中的“r”、“g”和“n”
[first-last] .
\p{name} \P{name}
字符范围:与从first到last的范围中的 [A-Z] 任何单个字符匹配。
“AB123”中的“A”和“B”
限定符
限定符指定在输入字符串中必须存在上一个元素(可以是字符、组或字符类)的多少个实例才能出现匹配项。限定符包括下 表中列出的语言元素。有关更多信息,请参见正则表达式中的限定符。
限定 符
说明
模式
匹配
*
匹配上一个元素零次或多次。
\d*\.\d
“.0”,“19.9”和“219.9”
+
匹配上一个元素一次或多次。
”、“I”和“V”
定位点
定位点或原子零宽度断言会使匹配成功或失败,具体取决于字符串中的当前位置,但它们不会使引擎在字符串中前进或使用 字符。下表中列出的元字符是定位点。有关更多信息,请参见正则表达式中的定位点。
断 言
说明
^ 匹配必须从字符串或一行的开头开始。
模式 ^\d{3}
$ 匹配必须出现在字符串的末尾或出现在行或字符串 -\d{3}$ 末尾的\n之前。
反向引用允许在同一正则表达式中随后标识以前匹配的子表达式。下表列出了.NETFramework的正则表达式支持的反向 引用构造。有关更多信息,请参见正则表达式中的反向引用构造。
反向引用构造 说明
\number
后向引用。匹配编号子表达式的值。
\k<name> 返回页首
命名后向引用。匹配命名表达式的值。
"be+"
“been”中的“bee”,“bent”中的“be”
?
匹配上一个元素零次或一次。
"rai?n"
“ran”和“rain”
{n} 匹配上一个元素恰好n次。
",\d{3}"
“1,043.6”中的“,043”,“9,876,543,210”中 的“,876”、“,543”和“,210”
{n,} 匹配上一个元素至少n次。
+?
匹配上一个元素一次或多次,但次数尽可 "be+?"
“been”中的“be”,“bent”中的“be”
能少。
??
匹配上一个元素零次或一次,但次数尽可 "rai??n" “ran”和“rain”
能少。
{n}? 匹配前导元素恰好n次。
",\d{3}?"
“1,043.6”中的“,043”,“9,876,543,210”中 的“,876”、“,543”和“,210”
\p{IsCyrillic} “ДЖem”中的“Д”和“Ж”
与不在name指定的Unicode通用类别 \P{Lu} 或命名块中的任何单个字符匹配
“City”中的“i”、“t”和“y”
\w
\W \s \S \d \D 返回页首
或命名块中的任何单个字符匹配。
与任何单词字符匹配。
与任何非单词字符匹配。 与任何空白字符匹配。 与任何非空白字符匹配。 与任何十进制数字匹配。 匹配不是十进制数的任意字符。
(?! subexpression )
零宽度负预测先行断言。
\b(?!un)\w+\b
“unsuresureunityused”中 的“sure”和“used”
(?<= subexpression )
零宽度正回顾后发断言。
(?<=19)\d{2}\b
“1851199919501905 2003”中 的“99”、“50”和“05”
此文章由人工翻译。将光标移到文章的句子上,以查看原文。更多信息。
正则表达式语言-快速参考
.NET Framework 4.5
正则表达式是正则表达式引擎尝试匹配输入文本的一种模式。模式由一个或多个字符文本、运算符或构造组成。有关简单介 绍,请参见.NETFramework正则表达式。 此快速参考中的每一节都列出了可用于定义正则表达式的字符、运算符和构造的一种特定类别。
(?<! subexpression )
零宽度负回顾后发断言。
(?<!19)\d{2}\b
“1851199919501905 2003”中的“51”和“03”