- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是正则表达式的新手,正在尝试使用 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/
我是一名优秀的程序员,十分优秀!