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+?)b", "a23b")
["23"]
2 如果你要多行匹配,那么加上re.S和re.M标志
re.S:.将会匹配换行符,默认.不会匹配换行符
[]
>>> re.findall(r"a(d+)b.+a(d+)b", "a23b a34b", re.S)
[("23", "34")]
>>>
re.M:^$标志将会匹配每一行,默认^和$只会匹配第一行
>>> re.findall(r"^a(d+)b", "a23b a34b")["23"]
>>> re.findall(r"^a(d+)b", "a23b a34b", re.M)
["23", "34"]
但是,如果没有^标志,
>>> re.findall(r"a(d+)b", "a23b a23b")["23", "23"]
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 效率篇-定时任务管理系统,替代crontab
- 下一篇: 正则表达式中跨行匹配问题