是否有表达式可以替换以下python代码行的标志re.DOTALL
:
r = re.compile(r'<p>.*<p>.', re.IGNORECASE | re.MULTILINE | re.DOTALL)
像添加任何表达式到这个正则表达式:r'<p>.*<p>.'
类似于:
r = re.compile(r'<p>something.*<p>.', re.IGNORECASE | re.MULTILINE )
但需要保持相同的行为,即匹配多行字符串(段落)
感谢我想你把它弄反了,下面两个应该是等价的:
r = re.compile(r'<p>[sS]*<p>.', re.IGNORECASE | re.MULTILINE)
r = re.compile(r'<p>.*<p>.', re.IGNORECASE | re.MULTILINE | re.DOTALL)
即以DOTALL
模式匹配.*
应与禁用DOTALL
模式匹配[sS]*
的行为相同。
可以使用内联标志(?s)
re.compile(regex, re.DOTALL)
等价于
re.compile('(?s)' + regex)