Dar*_*dit 3 python string string-split
你能帮我理解一下这个行为吗:
>>> a = "abc\\def\\ghi"
>>> a.split(r"\\")
['abc\\def\\ghi']
Run Code Online (Sandbox Code Playgroud)
然而,在花了几分钟和排列后,我发现这个目前正在起作用:
>>> a.split("\\")
['abc', 'def', 'ghi']
Run Code Online (Sandbox Code Playgroud)
你能指出我导致这种行为的文献/设计考虑因素吗?
您的字符串包含已转义的常规单个反斜杠:
>>> a = "abc\\def\\ghi"
>>> a
'abc\\def\\ghi'
>>> print(a)
abc\def\ghi
Run Code Online (Sandbox Code Playgroud)
当您拆分时,"\\"您正在转义一个反斜杠,因此您将拆分一个反斜杠并获得三个元素的列表:['abc', 'def', 'ghi'].当你拆分时,r"\\"你会被两个反斜杠拆分,因为前缀一个字符串r是Python的原始字符串表示法(与正则表达式无关).这里重要的是在原始字符串文字中不以任何特殊方式处理反斜杠.
在查看r人的正则表达式时,经常看到前缀字符串的原因是它们不想转义反斜杠字符,这些字符在正则表达式中也有特殊含义.
关于正则表达式的一些进一步阅读:反斜杠瘟疫
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |