Python的re模块中, search、 findall、 match等函数的参数都是 (pattern,string,flags), 第三个参数 flags有忽略大小写的re.I, 让模式更易读的...re.X等, 而其中re.S和re.M比较难理解, 下面介绍一下。...因此对下面一段文字, 结尾在第三行, 而.不能匹配换行符, 因此以下的 pattern什么都匹配不到:
text = """First line.
Second line....$"
print(re.findall(pattern, text)) # 输出为[]
re.S做的事情是: 让.也匹配换行符。
re.M做的事情是: 让^匹配每行的开头,$匹配每行的结尾。...换句话说,使用了 re.M以后,运行效果看起来就像是程序首先根据换行符把字符串拆分成了多个子字符串,然后再在子字符串中执行正则表达式。