<分区>
虽然我注意到了这个模式,但理论上反斜杠在字符串中是如何工作的?
'@#2_#]&*^%$\]'
输出:'@#2_#]&*^%$\\]'
'@#2_#]&*^%$\\]'
输出:'@#2_#]&*^%$\\]'
'@#2_#]&*^%$\\\]'
输出:'@#2_#]&*^%$\\\\]'
标签 python
<分区>
虽然我注意到了这个模式,但理论上反斜杠在字符串中是如何工作的?
'@#2_#]&*^%$\]'
输出:'@#2_#]&*^%$\\]'
'@#2_#]&*^%$\\]'
输出:'@#2_#]&*^%$\\]'
'@#2_#]&*^%$\\\]'
输出:'@#2_#]&*^%$\\\\]'
最佳答案
反斜杠\字符用于转义其他具有特殊含义的字符,例如换行符、反斜杠本身或引号字符。字符串文字可以选择以字母“r”或“R”为前缀;这样的字符串称为原始字符串,并且对反斜杠转义序列使用不同的规则。
除非存在“r”或“R”前缀,否则字符串中的转义序列将根据类似于标准 C 使用的规则进行解释。
为了与标准 C 严格兼容,最多接受三个八进制数字,但不限数量的十六进制数字被视为十六进制转义的一部分(然后所得十六进制数字的低 8 位用于 8位实现)。
与标准 C 不同,所有无法识别的转义序列都保留在字符串中不变,即反斜杠保留在字符串中。 (此行为在调试时很有用:如果转义序列输入错误,则结果输出更容易被识别为损坏。)
当出现 'r' 或 'R' 前缀时,反斜杠仍用于引用后面的字符,但所有反斜杠都保留在字符串中。例如,字符串文字 r"\n"由两个字符组成:一个反斜杠和一个小写的“n”。字符串引号可以用反斜杠转义,但反斜杠保留在字符串中;例如,r"\""是由两个字符组成的有效字符串文字:反斜杠和双引号;r"\"不是值字符串文字(即使是原始字符串也不能以奇数个反斜杠结尾)。具体来说,原始字符串不能以单个反斜杠结尾(因为反斜杠会转义后面的引号字符)。另请注意,单个反斜杠后跟换行符被解释为这两个字符作为字符串的一部分,而不是行继续.
关于python - Python如何解释字符串中的反斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58254234/