zoukankan      html  css  js  c++  java
  • C# 正则表达式选项总结

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

  • 相关阅读:
    linux定时器
    TIMESTAMP和DATETIME的区别
    Linux进程或线程绑定到CPU
    C++学习笔记
    磁盘扇区校验和
    docker安装mysql,并配置部分表同步
    docker 安装tomcat
    多tomcat 同一个浏览器 多个项目 会导致session覆盖
    Ubuntu 安装 NodeJS
    Ubuntu 下安装 Arduino IDE
  • 原文地址:https://www.cnblogs.com/alala666888/p/2381665.html
Copyright © 2011-2022 走看看