Python groups() 和 group() 之间的正则表达式输出不一致
Python regex inconsistent output between groups() and group()
我正在做一个小测试,使用 Python 正则表达式抓取反斜杠 (\
),我发现有点奇怪。
import re
stringing = "\"
pattern = re.compile(r'(\)')
search = pattern.search(string)
print search.group()
输出如下图,符合预期
\
但是,当我使用 .groups() as,
print search.groups()
我明白了
('\',)
这显然是错误的。不确定发生了什么。
tl;dr \
是反斜杠字符的 str
表示, '\'
是 repr
的表示反斜杠字符。
在这种情况下,search.group
returns 一个字符串。 \
的实际字符串表示仅为 \
。但是,当您打印一个元组时,它会在内部对其中的所有对象调用 repr
。 repr
在 \
上的结果是 '\'
.
你可以这样检查
print repr(search.group()), str(search.group())
# '\' \
我正在做一个小测试,使用 Python 正则表达式抓取反斜杠 (\
),我发现有点奇怪。
import re
stringing = "\"
pattern = re.compile(r'(\)')
search = pattern.search(string)
print search.group()
输出如下图,符合预期
\
但是,当我使用 .groups() as,
print search.groups()
我明白了
('\',)
这显然是错误的。不确定发生了什么。
tl;dr \
是反斜杠字符的 str
表示, '\'
是 repr
的表示反斜杠字符。
在这种情况下,search.group
returns 一个字符串。 \
的实际字符串表示仅为 \
。但是,当您打印一个元组时,它会在内部对其中的所有对象调用 repr
。 repr
在 \
上的结果是 '\'
.
你可以这样检查
print repr(search.group()), str(search.group())
# '\' \