>>> import re
>>> a='''\\n5
... 8'''
>>> b=re.findall('\\n[0-9]',a)
>>> print(b)
['\n8']
为什么会显示\n8
而不显示\n5
?
我第一次在\
前面使用\n
。
我发现python中的正则表达式中使用原始string
有点令人困惑。对我来说,它似乎没有对结果进行任何更改
答案 0 :(得分:2)
\\n
不是换行符,它是带有n的转义反斜杠。
>>> import re
>>> a = '''\n5
... 8'''
>>> a=re.findall('\\n[0-9]',a)
>>> print(a)
['\n5', '\n8']
答案 1 :(得分:2)
这是因为在字符串中,换行符被认为是单个字符。
当您执行node_modules
时,您正在逃避\\n5
,因此字面上打印\
,而不是Python标准的换行符。
当您搜索\n5
这样的正则表达式时,在第一个\\n[0-9]
中您正在转义\
正则表达式表达式,所以最后你正在寻找Python的换行符\n
。这符合字符串中的实际换行符,但不是\n
,这是两个单独的字符,转义为\\n
和\
。
答案 2 :(得分:1)
因为\\n5
不是新行,它会打印\n5