NO.70如何在影刀中使用正则表达式的模式修饰符?
评论
收藏

NO.70如何在影刀中使用正则表达式的模式修饰符?

经验分享
云潮
2024-07-10 17:46·浏览量:1374
云潮
发布于 2024-07-10 17:461374浏览

一、问题背景

需求:在多行文本匹配出"From:"与"To"之间的所有信息

从上述截图可以看出From:(.*)To这个表达式并不能匹配,那么具体是什么原因呢?

影刀帮助中心文档给出的"."的解释是表示任何单个字符,按理说我们的表达式没有任何问题,如果去掉换行,该表达式确实能匹配

难道是因为换行导致的吗?

二、解决方案

俗话说的好:遇事不决问GPT

我们看看GPT给的回答:

原来正则表达式中的.默认是匹配除换行符外的任意字符,要想.匹配换行,需要开启模式修饰符re.DOTALL

GPT给出的是Python代码,那么怎么把它变成正则表达式呢?别急,让GPT持续输出!

下面我们把它用到指令中试试

完美解决我们文章开始的需求!既然你都看到这里了,不如我们一起去了解下常见的模式修饰符有哪些?

三、扩展

正则表达式中的模式修饰符用于修改正则表达式的匹配行为。不同的编程语言和工具支持的模式修饰符可能有所不同,但一般常见的模式修饰符包括:

  1. i:忽略大小写,使匹配不区分大小写。
  2. g:全局匹配,匹配所有符合条件的结果,而不是只匹配第一个。
  3. m:多行匹配,使^和$匹配每一行的开头和结尾,而不是整个字符串的开头和结尾。
  4. s:单行模式,使.匹配包括换行符在内的所有字符。
  5. x:忽略空白字符,允许在正则表达式中使用空格和换行符来增加可读性。
  6. u:启用Unicode模式,用于处理Unicode字符。
  7. D:匹配非数字字符。
  8. U:非贪婪匹配,使量词变为非贪婪匹配。

在影刀中使用模式就是(?模式修饰符),其中全局匹配跟忽略大小写指令中已经自带

收藏11
全部评论1
最新
发布评论
评论