1 / 27
文档名称:

正则表达式语言元素.doc

格式:doc   页数:27页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

正则表达式语言元素.doc

上传人:yjjg0025 2015/6/5 文件大小:0 KB

下载得到文件列表

正则表达式语言元素.doc

文档介绍

文档介绍:正则表达式
.NET Framework SDK 提供了大量的正则表达式工具,使您能够高效地创建、比较和修改字符串,以及迅速地分析大量文本和数据以搜索、移除和替换文本模式。下面详细介绍可用于定义正则表达式的字符、运算符和构造。
字符转义
大多数重要的正则表达式语言运算符都是非转义的单个字符。转义符\(单个反斜杠)通知正则表达式分析器反斜杠后面的字符不是运算符。例如,分析器将星号(*) 视为重复限定符,而将后跟星号的反斜杠(\*) 视为 Unicode 字符 002A。下面列出的字符转义在正则表达式和替换模式中都会被识别。
转义符【一般字符】,说明:除.$ ^ { [ ( | ) * + ? \ 外,其他字符与自身匹配。
转义符【\a】,说明:与响铃(警报)\u0007 匹配。
转义符【\b】,说明:如果在[] 字符类中,则与退格符\u0008 匹配;如果不是这种情况,请参见本表后面的“注意”部分。
转义符【\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 字符匹配。
注意:.NET Framework 不支持用于指定 Unicode 的 Perl 5 字符转义。Perl 5 字符转义的格式是\x{####…},其中“####…”是十六进制数字的序列。 Framework 字符转义。
转义符【\】,说明:在后面带有不识别为转义符的字符时,与该字符匹配。例如,\* 与\x2A 相同。
注意:转义字符\b 是一个特例。在正则表达式中,\b 表示单词边界(在\w 和\W 之间),不过,在[] 字符类中,\b 表示退格符。在替换模式中,\b 始终表示退格符。
替换
只在替换模式中允许替换。对于正则表达式中的类似功能,使用后向引用(如\1)。有关后向引用的详细信息,请参见反向引用和后向引用构造。
字符转义和替换是在替换模式中识别的唯一的特殊构造。下面几部分描述的所有语法构造只允许出现在正则表达式中;替换模式中不识别它们。例如,替换模式 a*${txt}b 会插入字符串“a*”,该字符串后跟按 txt 捕获组匹配的子字符串,该子字符串后跟字符串“b”(如果有)。在替换模式中,* 字符不会识别为元字符。与此类似,在正则表达式匹配模式中不识别$ 模式。在正则表达式中,$ 指定字符串的结尾。
下面显示如何定义命名并编号的替换模式。
字符【$ 数字】,说明:替换按组号 number(十进制)匹配的最后一个子字符串。
字符【${ name }】,说明:替换由(?<name> ) 组匹配的最后一个子字符串。
字符【$$】,说明:替换单个“$”字符。
字符【$&】,说明:替换完全匹配本身的一个副本。
字符【$`】,说明:替换匹配前的输入字符串的所有文本。
字符【$'】,说明:替换匹配后的输入字符串的所有文本。
字符【$+】,说明:替换最后捕获的组。
字符【$_】,说明:替换整个输入字符串。
字符类
字符类表示一组可以匹配输入字符串的字符。组合原义字符、转义符和字符类以构成正则表达式模式。
字符类将定义字符集。一些字符类等同于一个或多个 Unicode 通用类别值或 Unicode 块。Unicode 通用类别定义了字符的主要分类,即字符的类型是否为字母、十进制数字、分隔符、数学符号、标点符号,等等。例如,Lu 通用类别表示“字母,小写”,Sm 类别表示“符号,数学”。有关更多信息,请参见支持的 Unicode 通用类别。
Unicode 块是 Unicode 码位的命名范围。.NET Framework 提供一组从 Unicode 块名称派生的命名块。例如,.NET Framework 提供 IsBasicLatin 命名块,其对应于 Basic Latin Unicode 块并且包含 U+0000 至 U+007F 范围内