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免费学习笔记(深入)”;