>> re.findall(r"a(\d+)", "a23b")注意比较这种情况:>>> re.findall(r"a(\d+)b", "a23b")>>> re.findal ;明霞山资源网更新日期:2025/2/13.">

python贪婪匹配以及多行匹配的实例讲解

脚本专栏 发布日期:2025/2/13 浏览次数:1

正在浏览:python贪婪匹配以及多行匹配的实例讲解

1 非贪婪flag

> re.findall(r"a(\d+", "a23b")
  ['2']
> re.findall(r"a(\d+)", "a23b")
  ['23']

注意比较这种情况:

> re.findall(r"a(\d+)b", "a23b")
  ['23']
> re.findall(r"a(\d+", "a23b")
  ['23']

2 如果你要多行匹配,那么加上re.S和re.M标志

re.S:.将会匹配换行符,默认.不会匹配换行符

> re.findall(r"a(\d+)b.+a(\d+)b", "a23b\na34b")
  []
> re.findall(r"a(\d+)b.+a(\d+)b", "a23b\na34b", re.S)
  [('23', '34')]
>

re.M:^$标志将会匹配每一行,默认^和$只会匹配第一行

> re.findall(r"^a(\d+)b", "a23b\na34b")
  ['23']
> re.findall(r"^a(\d+)b", "a23b\na34b", re.M)
  ['23', '34']

但是,如果没有^标志,

> re.findall(r"a(\d+)b", "a23b\na23b")
  ['23', '23']

以上这篇python贪婪匹配以及多行匹配的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。