gpt4 book ai didi

python - 如何在python中转义 “\”字符

转载 作者:太空宇宙 更新时间:2023-11-03 12:22:04 25 4
gpt4 key购买 nike

我是正则表达式的新手,正在尝试使用 python 获取“\”字符

通常我可以像这样转义“\”

print ("\\");
print ("i am \\nit");

输出

\
i am \nit

但是当我在 regX 中使用它时,它并没有像我想的那样工作

print (re.findall(r'\\',"i am \\nit"));

并返回我的输出

['\\']

谁能解释一下原因

最佳答案

编辑:问题是实际上print 如何处理列表和字符串。它打印字符串的表示形式,而不是字符串本身,仅包含反斜杠的字符串表示形式是 '\\'。所以 findall 实际上正确地找到了单个反斜杠,但是 print 并没有像您期望的那样打印它。尝试:

>>> print(re.findall(r'\\',"i am \\nit")[0])
\

(下面是我原来的回答,可以忽略(完全不相关),我一开始误解了这个问题。但似乎有点被点赞了,所以我就把它留在这里。)

字符串上的 r 前缀表示字符串处于“原始”模式,即 \ 不被视为特殊字符(它没有任何与“正则表达式”)有关。

但是,r'\' 不起作用,因为您不能以反斜杠结束原始字符串,it's stated in the docs :

Even in a raw string, string quotes can be escaped with a backslash, but the backslash remains in the string; for example, r"\"" is a valid string literal consisting of two characters: a backslash and a double quote; r"\" is not a valid string literal (even a raw string cannot end in an odd number of backslashes). Specifically, a raw string cannot end in a single backslash (since the backslash would escape the following quote character).

但实际上您可以使用非原始字符串来获取单个反斜杠:"\\"

关于python - 如何在python中转义 “\”字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10349439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com