我正在尝试使用Python正则表达式来反斜杠(\
),我发现它有点奇怪。
import re
stringing = "\\"
pattern = re.compile(r'(\\)')
search = pattern.search(string)
print search.group()
输出如下所示,符合预期
\
但是,当我使用.groups() as,
print search.groups()
我得到了
('\\',)
这显然是错误的。不确定发生了什么。
答案 0 :(得分:4)
tl; dr \
是反斜杠字符的str
表示形式,'\\'
是反斜杠字符的repr
表示形式。< / p>
在这种情况下,search.group
返回一个字符串。 \
的实际字符串表示形式仅为\
。但是,当你打印一个元组时,它会在内部调用其中所有对象的repr
。 repr
上\
的结果为'\\'
。
您可以像这样检查
print repr(search.group()), str(search.group())
# '\\' \