我有很多用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/

10-09 06:50
查看更多