str.split(r'\ n')不会按预期在原始字符串文字中将换行符上的字符串拆分

时间:2018-10-11 08:52:33

标签: python regex python-3.x

假设我有一个字符串s = hi\nhellon\whatsup,我想分割它。

如果我使用s.split('\n'),则会得到预期的输出:

['hi', 'hello', 'whatsup']

但是,如果我使用re.split('\n', s),它实际上是`re.split(r'\ n',s)并且我也得到相同的输出:

['hi', 'hello', 'whatsup']

为什么用re.split()在原始字符串文字上拆分会起作用?

这是什么黑魔法?

1 个答案:

答案 0 :(得分:1)

\n既是换行符的ASCII转义符,也是的正则表达式转义,意思是“匹配换行符”。因此,在与re.split一起使用的原始字符串中,它将查找它作为正则表达式转义;在非原始字符串中,它会寻找文字ASCII字符,但是无论哪种方式,它都会找到换行符。