组()和组()之间的Python正则表达式输出不一致

时间:2015-03-05 03:28:39

标签: python regex regex-group

我正在尝试使用Python正则表达式来反斜杠(\),我发现它有点奇怪。

import re
stringing = "\\"
pattern = re.compile(r'(\\)')
search = pattern.search(string)
print search.group()

输出如下所示,符合预期

\

但是,当我使用.groups() as,

print search.groups()

我得到了

('\\',)

这显然是错误的。不确定发生了什么。

enter image description here

1 个答案:

答案 0 :(得分:4)

tl; dr \是反斜杠字符的str表示形式,'\\'是反斜杠字符的repr表示形式。< / p>

在这种情况下,search.group返回一个字符串。 \的实际字符串表示形式仅为\。但是,当你打印一个元组时,它会在内部调用其中所有对象的reprrepr\的结果为'\\'

您可以像这样检查

print repr(search.group()), str(search.group())
# '\\' \