假设我有一个字符串s = hi\nhellon\whatsup
,我想分割它。
如果我使用s.split('\n')
,则会得到预期的输出:
['hi', 'hello', 'whatsup']
但是,如果我使用re.split('\n', s)
,它实际上是`re.split(r'\ n',s)并且我也得到相同的输出:
['hi', 'hello', 'whatsup']
为什么用re.split()
在原始字符串文字上拆分会起作用?
这是什么黑魔法?
答案 0 :(得分:1)
\n
既是换行符的ASCII转义符,也是的正则表达式转义,意思是“匹配换行符”。因此,在与re.split
一起使用的原始字符串中,它将查找它作为正则表达式转义;在非原始字符串中,它会寻找文字ASCII字符,但是无论哪种方式,它都会找到换行符。