正则表达式:如何匹配包含"\n"(换行符)的字符串?

Xun*_*ang 10 python regex escaping line-breaks

我正在尝试使用正则表达式从SQL导出文件中转储数据.为匹配帖子内容的字段,我使用' (?P<content>.*?)'.它在大多数情况下工作正常,但如果字段包含'\n'字符串,则正则表达式将不匹配.如何修改正则表达式以匹配它们?谢谢!

示例(我正在使用Python):

>>> re.findall("'(?P<content>.*?)'","'<p>something, something else</p>'")
['<p>something, something else</p>']

>>> re.findall("'(?P<content>.*?)'","'<p>something, \n something else</p>'")
[]
Run Code Online (Sandbox Code Playgroud)

PS看起来前面带有'\'的所有字符串都被视为转义字符.我怎么能告诉regx按原样对待他们?

Ada*_*man 24

你应该使用DOTALL选项:

>>> re.findall("'(?P<content>.*?)'","'<p>something, \n something else</p>'", re.DOTALL)
['<p>something, \n something else</p>']
Run Code Online (Sandbox Code Playgroud)

看到这个.