正则 : 模式

Posted virgosnail

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则 : 模式相关的知识,希望对你有一定的参考价值。

1. 模式

1.0 回溯

  贪婪模式和懒惰模式都会进行回溯;
  匹配两次相关的字符时,匹配到不符合要求的字符后,这个字符才算匹配完,然后继续匹配下一个字符;
  比如:xy{1,3}z
  样本:xyyyz
  在匹配该样本时,无论贪婪模式还是懒惰模式,都需要匹配到z后才能知道y字符匹配完成,才会继续匹配表达式中的z字符

1.1 贪婪模式

  默认模式就是贪婪模式,正则会在满足要求的情况下尽可能多的匹配字符知道匹配到不符合要求的字符为止;

技术图片

1.2 懒惰模式

  在满足要求的情况下尽可能多的匹配字符知道匹配到不符合要求的字符为止;
  在量词后加?即表示懒惰模式

技术图片

1.3 独占模式

  在满足要求的情况下尽可能多的匹配字符,如果匹配失败就结束;
  在量词后加+即表示独占模式

技术图片

2. 匹配模式

  通过模式修饰符(?模式符号)来表示正则的匹配模式,使用时将执行的模式修饰符放在指定的正则前面即可。

2.1 不区分大小写

  (?i),Insensitive : 不敏感

  所有字符不区分大小写,在正则最前面添加(?i)即可

技术图片

  部分字符不区分大小写,在需要不区分大小写的部分添加(?i),再用()将这部分括起来
  ((?i)baby)Come
  表示 baby 不区分大小写, Come 区分大小写
  ![](https://img2020.cnblogs.com/blog/1294391/202007/1294391-20200705201901417-251981112.png)

  不区分大小写,但是第二次匹配的格式与第一次一致
   ![](https://img2020.cnblogs.com/blog/1294391/202007/1294391-20200705201623915-160856864.png)

2.2 点号通配模式

  *可以匹配所有字符,包括换行符

2.3 多行匹配模式

  默认情况下,^匹配整个文本的开头,$匹配整个文本的结尾

技术图片

  (?m), 表示多行匹配模式,会匹配每一行的开头和结尾

技术图片

2.4 注释模式

  给正则表达式添加注释
  (?w comment)

技术图片

以上是关于正则 : 模式的主要内容,如果未能解决你的问题,请参考以下文章

通过 Java 正则表达式提取 semver 版本字符串的片段

python 正则表达式

python基础学习(十三)

python基础学习笔记(十三)

用于从 cloudkit 检索单列的代码模式/片段

python 正则表达式 re模块基础