正则表达式语言

更新:2007 年 11 月

为操纵文本,对正则表达式语言进行了精心设计和优化。正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符。元字符使正则表达式具有处理能力。

您可能比较熟悉在 DOS 文件系统中使用的 ? 和 * 元字符,这两个元字符分别代表任意单个字符和字符组。DOS 文件命令 COPY *.DOC A: 命令文件系统将文件扩展名为 .DOC 的所有文件均复制到 A 驱动器的磁盘中。元字符 * 代表文件扩展名 .DOC 前的任何文件名。正则表达式极大地拓展了此基本思路,提供大量的元字符组,使通过相对少的字符描述非常复杂的文本匹配表达式成为可能。

例如,正则表达式 \s2000 在应用到文本正文时,将匹配在字符串“2000”前为任意空白字符(例如空格或制表符)的所有匹配项。

说明:

如果使用的是 C++、C# 或 JScript,则在特殊转义符(例如 \s)之前必须另加一个反斜杠(例如“\\s2000"”),以表明转义符中的反斜杠是原义字符。否则,正则表达式引擎会将 \s 中的反斜杠和 s 当作两个单独的运算符来处理。如果使用的是 Visual Basic 2005,则不必添加反斜杠。如果使用的是 C#,则可以使用以 @ 为前缀并禁用转义的 C# 字符串(例如 @"\s2000")。

正则表达式还可以执行更为复杂的搜索。例如,正则表达式 (?<char>\w)\k<char> 使用命名分组和反向引用来搜索相邻的成对字符。当应用于“I'll have a small coffee”这一字符串时,它将在单词“I'll”、“small”和“coffee”中找到匹配项。(有关此正则表达式的详细信息,请参见反向引用。)

以下各节详细介绍定义 .NET Framework 正则表达式语言的元字符组,以及说明如何使用正则表达式类来在您的应用程序中实现正则表达式。

请参见

概念

正则表达式类

参考

System.Text.RegularExpressions

其他资源

正则表达式行为的详细信息

正则表达式示例

正则表达式语言元素