“博”技术之精,“客”网络之友。

博,客之博;客,博之客。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

.net中的正则表达式(一)——转义字符

Posted on 2007-12-14 13:44  nect  阅读(1073)  评论(0编辑  收藏  举报

.net中的正则表达式(一)——转义字符
最近学习一下.net中的正则表达式,总结一下。

转义符 说明

一般字符

除 .$ ^ { [ ( | ) * + ? \ 外,其他字符与自身匹配。

\a

与响铃(警报)\u0007 匹配。

\b

如果在 [] 字符类中,则与退格符 \u0008 匹配;如果不是这种情况,请参见本表后面的“注意”部分。

\B 匹配非单词边界

\t

与 Tab 符 \u0009 匹配。

\r

与回车符 \u000D 匹配。

\v

与垂直 Tab 符 \u000B 匹配。

\f

与换页符 \u000C 匹配。

\n

与换行符 \u000A 匹配。

\e

与 Esc 符 \u001B 匹配。

\040

将 ASCII 字符匹配为八进制数(最多三位);如果没有前导零的数字只有一位数或者与捕获组号相对应,则该数字为后向引用。(有关更多信息,请参见反向引用。)例如,字符 \040 表示空格。

\x20

使用十六进制表示形式(恰好两位)与 ASCII 字符匹配。

\cC

与 ASCII 控制字符匹配;例如,\cC 为 Ctrl-C。

\u0020

使用十六进制表示形式(恰好四位)与 Unicode 字符匹配。

Note注意

.NET Framework 不支持用于指定 Unicode 的 Perl 5 字符转义。Perl 5 字符转义的格式是 \x{####…},其中“####…”是十六进制数字的序列。应改为使用本行中描述的 .NET Framework 字符转义。

\

在后面带有不识别为转义符的字符时,与该字符匹配。例如,\*\x2A 相同。

\

Note注意

转义字符 \b 是一个特例。在正则表达式中,\b 表示单词边界(在 \w\W 之间),不过,在 [] 字符类中,\b 表示退格符。在替换模式中,\b 始终表示退格符。


 

"d

匹配一个数字字符。等价于 [0-9]

"D

匹配一个非数字字符。等价于 [^0-9]

"f

匹配一个换页符。等价于 "x0c "cL

"n

匹配一个换行符。等价于 "x0a "cJ

"r

匹配一个回车符。等价于 "x0d "cM

"s

匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ "f"n"r"t"v]

"S

匹配任何非空白字符。等价于 [^ "f"n"r"t"v]

"t

匹配一个制表符。等价于 "x09 "cI

"v

匹配一个垂直制表符。等价于 "x0b "cK

"w

匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'

"W

匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'

"xn

匹配 n,其中 n为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如, '"x41' 匹配 "A"'"x041' 则等价于 '"x04' & "1"。正则表达式中可以使用 ASCII 编码。.

"num

匹配 num,其中 num是一个正整数。对所获取的匹配的引用。例如,'(.)"1' 匹配两个连续的相同字符。

"n

标识一个八进制转义值或一个后向引用。如果 "n 之前至少 n个获取的子表达式,则 n为后向引用。否则,如果 n为八进制数字 (0-7),则 n为一个八进制转义值。

"nm

标识一个八进制转义值或一个后向引用。如果 "nm 之前至少有is preceded by at least nm 个获取得子表达式,则 nm为后向引用。如果 "nm 之前至少有 n个获取,则 n为一个后跟文字 m 的后向引用。如果前面的条件都不满足,若  n m均为八进制数字 (0-7),则 "nm 将匹配八进制转义值 nm

"nml

如果 n为八进制数字 (0-3),且 m l均为八进制数字 (0-7),则匹配八进制转义值 nml

"un

匹配 n,其中 n是一个用四个十六进制数字表示的 Unicode 字符。例如, "u00A9 匹配版权符号 (?)


 

\d

匹配一个数字字符。等价于 [0-9]

\D

匹配一个非数字字符。等价于 [^0-9]

\f

匹配一个换页符。等价于 \x0c \cL

\n

匹配一个换行符。等价于 \x0a \cJ

\r

匹配一个回车符。等价于 \x0d \cM

\s

匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]

\S

匹配任何非空白字符。等价于 [^ \f\n\r\t\v]

\t

匹配一个制表符。等价于 \x09 \cI

\v

匹配一个垂直制表符。等价于 \x0b \cK

\w

匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'

\W

匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'

\xn

匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如, '\x41' 匹配 "A"'\x041' 则等价于 '\x04' & "1"。正则表达式中可以使用 ASCII 编码。.

\num

匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,'(.)\1' 匹配两个连续的相同字符。

\n

标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为后向引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。

\nm

标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式,则 nm 为后向引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足,若  n m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm

\nml

如果 n 为八进制数字 (0-3),且 m l 均为八进制数字 (0-7),则匹配八进制转义值 nml

\un

匹配 n,其中 n 是一个用四个十六进制数字表示的 Unicode 字符。例如, \u00A9 匹配版权符号 (?)