我有很多用python 3.4解析的充满新行的文本文件。我正在寻找换行符,因为它们将我的文本分成不同的部分。下面是一个文本示例:
text = 'avocat ;\n\n m. x'
我天真地开始在正则表达式(RE)中查找带有“
\n
”的换行符,却没有想到反斜杠“\
”是转义字符。不过,结果很好:>>> import re
>>> pattern1 = '\n\n'
>>> re.findall(pattern1, text)
['\n\n']
然后,我明白我应该使用一个双反斜杠,以寻找一个反弹。这也很有效:
>>> pattern2 = '\\n\\n'
>>> re.findall(pattern2, text)
['\n\n']
但在another thread上,我被告知使用原始字符串而不是常规字符串,但这种格式找不到我要查找的换行符:
>>> pattern3 = r'\\n\\n'
>>> pattern3
'\\\\n\\\\n'
>>> re.findall(pattern3, text)
[]
你能帮帮我吗?我有点搞不清楚我应该使用什么样的RE国王才能正确地匹配换行符。
最佳答案
使用原始字符串时不要将反斜杠加倍:
>>> pattern3 = r'\n\n'
>>> pattern3
'\\n\\n'
>>> re.findall(pattern3, text)
['\n\n']
关于python - 理解python中正则表达式的原始字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32703987/