Regex Confusion Literal与Nonliteral

时间:2015-02-25 00:29:09

标签: python regex

我理解反斜杠的概念及其在转义序列中的用法,但是

为什么这些产生相同的结果?

import re

print 'Test 1'

for i in re.findall("\n", "This\nis\na\ntest."):
    print 'Newline'

print 'Test 2'

for i in re.findall(r"\n", "This\nis\na\ntest."):
    print 'Newline'

在在线Python编译器中尝试代码here

1 个答案:

答案 0 :(得分:3)

在第一种情况下,您要求正则表达式引擎搜索换行符。 Python将\n转换为换行符并将其传递给re.findall

在第二种情况下,您要求正则表达式引擎搜索\n。 Python将\n传递给re.findall。正则表达式引擎知道\n表示换行符。

所以你得到了同样的结果; \n的取消仅仅发生在过程的不同阶段。