前缀为的字符串的拆分行为

2024-04-18 08:16:48 发布

您现在位置:Python中文网/ 问答频道 /正文

你能帮我理解这种行为吗:

>>> a = "abc\\def\\ghi"
>>> a.split(r"\\")
['abc\\def\\ghi']

然而,在花了几分钟的时间和排列之后,我发现这个方法现在仍然有效:

>>> a.split("\\")
['abc', 'def', 'ghi']

你能告诉我导致这种行为的文献/设计考虑吗?你知道吗


Tags: 方法def时间文献splitabcghi
1条回答
网友
1楼 · 发布于 2024-04-18 08:16:48

字符串包含已转义的常规单反斜杠:

>>> a = "abc\\def\\ghi"
>>> a
'abc\\def\\ghi'
>>> print(a)
abc\def\ghi

当您按"\\"拆分时,您将转义一个反斜杠,因此您将按一个反斜杠拆分,并将得到一个包含三个元素的列表:['abc', 'def', 'ghi']。 当用r"\\"分割时,就是用两个反斜杠分割,因为用r作为字符串前缀是Python的原始字符串表示法(与regex无关)。这里重要的一点是,反斜杠在原始字符串文本中没有任何特殊的处理方式。你知道吗

当您查看人们的正则表达式时,经常看到以r为前缀的字符串的原因是他们不想转义在正则表达式中也有特殊含义的反斜杠字符。你知道吗

关于正则表达式的进一步阅读:The Backslash Plague

相关问题 更多 >