现在的位置: 首页 > 综合 > 正文

C# 正则表达式选项总结

2013年03月11日 ⁄ 综合 ⁄ 共 776字 ⁄ 字号 评论关闭

    在.Net里用正则的时候,有一些选项会给我们很大帮助,选项一般以一个字母表示,在使用的时候我们可以在构建Regex类的时候在构造方法里面用枚举或的方式传入, 如下面:    

Regex r = new Regex(@"\w+", RegexOptions.Compiled | RegexOptions.IgnoreCase);

    也可以直接放在正则表达式字符串的前面, 格式为

        (?{选项列表}){正则表达式}

    例如'(?i)abc'中的i表示忽略大小写,对应枚举RegexOptions.IgnoreCase。

下面介绍几个常用的选项:

1. 单行模式:n,RegexOptions.Singleline
  这个表明.可以匹配换行符,一般用在全文匹配,可以在让正则表达式匹配多行文本。
2. 忽略大小写:i,RegexOptions.IgnoreCase
  这个不用多解释, 例如'(?i)abc'可以同时批评abc和ABC
3. 只进行分组匹配:n,RegexOptions.ExplicitCapture
  匹配不必要的内容会影响性能,我们一般用(?:{表达式})忽略匹配,不过写多了会影响正则的可读性,
用n选项使得正则表达式只匹配分组,也就是形如(?<name>{表达式})的部分。
4. 忽略空格,支持多行正则表达式和注释:x,RegexOptions.IgnorePatternWhitespace
  用了这个选项,表达式中的空白将被忽略,我们只能用\s*或者\s+来匹配空格,同时表达式可以写多行,
支持#开头的注释,  例如:
 

        Regex r = new Regex(@"(?six)
\w+ #名称
:
\w+ #值
");

这个选项我们一般不用,因为如果要用,我们就必须把正则中的空格全部换成\s或者\s+,比较麻烦。不过在正则表达式非常复杂的时候
分成多行并加上注释可以增强表达式的可读性。

 

抱歉!评论已关闭.