PHP前端开发

python贪婪匹配以及多行匹配

百变鹏仔 3小时前 #Python
文章标签 贪婪

下面为大家分享一篇python贪婪匹配以及多行匹配的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起过来看看吧

1 非贪婪flag

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

立即学习“Python免费学习笔记(深入)”;

注意比较这种情况:

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

立即学习“Python免费学习笔记(深入)”;

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

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

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

立即学习“Python免费学习笔记(深入)”;

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

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

立即学习“Python免费学习笔记(深入)”;

但是,如果没有^标志,

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

立即学习“Python免费学习笔记(深入)”;