使用此模式:
(?<=\(\\\\).*(?=\))
和此主题字符串:'(\\Drafts) "/" "&g0l6P3ux-"'
我希望匹配Drafts
但是,它不起作用。有人可以解释原因吗?
我在Python中使用re模块,以下是我所做的:
>>> pattern = re.compile("(?<=\(\\\\).*?(?=\\))")
>>> pattern.pattern
'(?<=\\(\\\\).*?(?=\\))'
>>> two
'(\\Drafts) "/" "&g0l6P3ux-"'
>>> match = pattern.search(two)
>>> match
<_sre.SRE_Match object at 0x1096e45e0>
>>> match.groups()
()
>>> match.group(0)
'Drafts'
>>>
我的问题是为什么groups
除了group
得到正确答案之外什么也得不到?
答案 0 :(得分:0)
match.groups()
为空,因为您的模式未定义任何捕获组。 match.group(0)
是完全匹配,而match.group(1)
是第一个捕获组(如果有的话)。
为了提高可读性,您应该将正则表达式模式表示为原始字符串。你的可以写成
r"(?<=\(\\).*?(?=\))"
要将其分解,文字(\
,然后是.*?
,最后是文字)
的预测。