2024-04-18 08:16:48 发布
网友
你能帮我理解这种行为吗:
>>> a = "abc\\def\\ghi" >>> a.split(r"\\") ['abc\\def\\ghi']
然而,在花了几分钟的时间和排列之后,我发现这个方法现在仍然有效:
>>> a.split("\\") ['abc', 'def', 'ghi']
你能告诉我导致这种行为的文献/设计考虑吗?你知道吗
字符串包含已转义的常规单反斜杠:
>>> a = "abc\\def\\ghi" >>> a 'abc\\def\\ghi' >>> print(a) abc\def\ghi
当您按"\\"拆分时,您将转义一个反斜杠,因此您将按一个反斜杠拆分,并将得到一个包含三个元素的列表:['abc', 'def', 'ghi']。 当用r"\\"分割时,就是用两个反斜杠分割,因为用r作为字符串前缀是Python的原始字符串表示法(与regex无关)。这里重要的一点是,反斜杠在原始字符串文本中没有任何特殊的处理方式。你知道吗
"\\"
['abc', 'def', 'ghi']
r"\\"
r
当您查看人们的正则表达式时,经常看到以r为前缀的字符串的原因是他们不想转义在正则表达式中也有特殊含义的反斜杠字符。你知道吗
关于正则表达式的进一步阅读:The Backslash Plague
字符串包含已转义的常规单反斜杠:
当您按
"\\"
拆分时,您将转义一个反斜杠,因此您将按一个反斜杠拆分,并将得到一个包含三个元素的列表:['abc', 'def', 'ghi']
。 当用r"\\"
分割时,就是用两个反斜杠分割,因为用r
作为字符串前缀是Python的原始字符串表示法(与regex无关)。这里重要的一点是,反斜杠在原始字符串文本中没有任何特殊的处理方式。你知道吗当您查看人们的正则表达式时,经常看到以
r
为前缀的字符串的原因是他们不想转义在正则表达式中也有特殊含义的反斜杠字符。你知道吗关于正则表达式的进一步阅读:The Backslash Plague
相关问题 更多 >
编程相关推荐