在.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+,比较麻烦。不过在正则表达式非常复杂的时候
分成多行并加上注释可以增强表达式的可读性。

转载于:https://www.cnblogs.com/alala666888/archive/2012/03/06/2381665.html

C# 正则表达式选项总结相关推荐

  1. 【C#进阶二】C#中的正则表达式知识总结(字符转义/字符类/ 定位点/ 分组构造 /数量词/反向引用构造/替换构造/替代/正则表达式选项)(理论篇)

    文章目录 0. 正则表达式网站推荐 1.字符转义 2.字符类 3. 定位点 4. 分组构造 5.数量词 6.反向引用构造 7.替换构造 8.替代 9.正则表达式选项 正则表达式是对字符串操作的一种逻辑 ...

  2. grep 正则表达式及选项以及注意

    说明:在原文基础上稍作了修改 grep命令简介: 在ex编辑器(我没用过)中,启动ex编辑器后要查找某个字符串时,在ex的命令提示符后键入: :/pattern/p :/g/pattern/p gre ...

  3. 正则表达式语法规则收集

    turnmissile 的 Blog http://blog.csdn.net/turnmissile/ Microsoft已经把正则表达式的规则收录在了msdn里面了,有兴趣的朋友可以自己去研究一下 ...

  4. 正则表达式测试工具 Regex Tester 的使用方法

    2019独角兽企业重金招聘Python工程师标准>>> 正则表达式测试工具"RegexTester",下载地址:http://www.oschina.net/p/ ...

  5. 正则表达式模式修正符

    模式修正符 模式修正符 -- 解说正则表达式模式中使用的修正符 说明 下面列出了当前在 PCRE 中可能使用的修正符.括号中是这些修正符的内部 PCRE 名.修正符中的空格和换行被忽略,其它字符会导致 ...

  6. 在UltraEdit中使用正则表达式

    删除空行:  替换 %[ ^t]++^p 为  空串 删除行尾空格: 替换 [ ^t]+$ 为  空串 删除行首空格: 替换 %[ ^t]+ 为  空串 每行设置为固定的4个空格开头: 替换 %[ ^ ...

  7. 艾伟:正则表达式30分钟入门教程

    本文目标 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它. 如何使用本教程 最重要的是--请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在3 ...

  8. 58.最全正则表达式教程,最好正则表达式教程

    正则表达式是什么? 字符是计算机软件处理文字最基本的单位,可以是字母,也可以是数字,标点符号,空格,换行符,汉字等等. 字符串是0个或更多个字符的序列.文本也就是文字,字符串.说某个字符串匹配某个正则 ...

  9. String.replaceAll() 正则表达式

    String.replaceAll() 正则表达式 正则表达式QQ 最近项目中出现了一个正则表达式的BUG!  我用的是String.replaceAll()方法  查询发现它应该是调用了Matche ...

最新文章

  1. Nginx 的recv() failed 错误解决一例
  2. createrepo命令安装_安装CDH6.3
  3. 交叉验证技术(part1)--概述
  4. FFT算法的完整DSP实现(转)
  5. Xen的起源与工作原理
  6. linux升级了npm怎么还原,linux下升级npm以及node
  7. 鸿蒙os开启第二批公测,鸿蒙OS开启第二批公测,7款机型加入升级名单,NOVA用户恭喜了...
  8. CGI、FastCGI和php-fpm的概念和区别
  9. 深度学习——卷积神经网络CNN
  10. 动态内存分配(malloc函数)
  11. 马化腾:如果今天我才创业 会做什么切入中国互联网
  12. jwplayer html插件,jQuery插件JWPlayer视频播放器用法实例分析
  13. 超实用!常用贴片三极管丝印与型号对照表
  14. Mac:was built for newer OSX version (10.15) than being linked (10.14)
  15. 数学与计算机的微妙关系
  16. 2020-05-21
  17. 隐藏桌面和控制面板网络连接
  18. 短视频运营技巧,掌握这五点你的视频也可以火爆
  19. 【python期末设计(节选)】志愿者管理系统开发包含源码软件工程
  20. 曲线弧长和旋转体侧面积的计算公式

热门文章

  1. hash算法_hash一致性算法
  2. ionic4生命周期
  3. PHP报不存在图像文件,使用TP3.2.3图片文件上传显示不存在图像文件
  4. android 布局可大可小,UI设计教程之:ios与android ui适配(将IOS UI转换成Android经验畅谈)...
  5. kettle分布式部署_Kettle(三)分布式架构
  6. threejs 绘制球体_Three.js 第一篇:绘制一个静态的3D球体
  7. oracle复杂密码,如何配置 Oracle 11g 复杂密码校验设置
  8. android评论数据如何返回@用户_教你如何用JavaScript来驯服服务端返回的数据
  9. android fragment 优势,Android Fragment详解
  10. mysql调换数据_mysql互换表中两列数据方法