成员 | 说明 |
Cultureinvariant | 指定忽略字符串的区域值 |
ExplicitCapture | 修改收集匹配的方式,方法是确保把显式指定的匹配作为有效的搜索结果 |
IgnoreCase | 忽略输入字符串的大小写 |
IgnorePatternWhitespace | 在字符串中删除未转义的空白,启用通过#符号指定的注释 |
Multiline | 修改字符^和$,把他们应用于每一行的开头和结尾,而不仅仅应用于整个字符串的开头和结尾 |
RightToLeft | 从右到左的读取输入字符串,而不是默认的从左到右读取(适合于一些亚洲语言或其它以这种方式读取的语言) |
Singleline | 指定句点的含义(.),它原来表示单行模式,现在改为匹配每个字符 |
符号 | 含义 | 示例 | 匹配的示例 |
^ | 输入文本的开头 | ^B | B,只能是文本中的第一个字符 |
$ | 输入文本的结尾 | X$ | X,但只能是文本中的最后一个字符 |
. | 除了换行符(\n)以外的所有单个字符 | i.ation | isation、ization |
* | 可以重复0次或多次的前导字符 | ra*t | rt、rat、raat、raaat等 |
+ | 可以重复1次或多次的前导字符 | ra+t | rat、raat、raaat等(但不能是rt) |
? | 可以重复0次或1次的前导字符 | ra?t | 只有rt和rat匹配 |
\s | 任何空白字符 | \sa | [space]a、\ta、\na(\t和\n与C#中的\t和\n含义相同) |
\S | 任何不是空白的字符 | \SF | aF、rF、cF,但不能是、tF |
\b | 字边界 | ion\b | 以ion结尾的任何字 |
\B | 不是字边界的任意位置 | \BX\B | z字中间的任何X |
例子:
假定要查找以n开头的字,那么可以使用转义序列\b,它表示一个字的边界(字的边界是以字母数字表中的某个字符开头,或者后面是一个空白字符或标点符号)。可以编写如下代码:
const string pattern=@"\bn";
MatchCollection myMatches=Regex.Matches(input,pattern,RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);
input:输入字符串。
pattern:匹配正则表达式。
RegexOptions.IgnoreCase:忽略字符串的大小写。
RegexOptions.ExplicitCapture:修改收集匹配的方式,方法是确保把显式指定的匹配作为有效的搜索结果