如果你要多行匹配,那么需要加上re.S
和re.M
标志. 加上re.S
后, .
将会匹配换行符,默认.
不会匹配换行符. 代码如下:
str = "a23bna34b" re.findall(r"a(d+)b.+a(d+)b", str) #输出[] #因为不能处理str中间有n换行的情况 re.findall(r"a(d+)b.+a(d+)b", str, re.S) #s输出[('23', '34')]
加上re.M
后,^$
标志将会匹配每一行,默认^
和$
只会匹配第一行. 代码如下:
str = "a23bna34b" re.findall(r"^a(d+)b", str) #输出['23'] re.findall(r"^a(d+)b", str, re.M) #输出['23', '34']