我正在尝试制作正则表达式以匹配同一组中的一个选项或另一个选项,在此示例中,组1:
>>> x = re.match('(a)|b(c)', 'a')
>>> x.group(1)
'a' # Fine
>>> x = re.match('(a)|b(c)', 'bc')
>>> x.group(1)
'' # Not fine
由于只有一个组匹配,我希望正则表达式输出将它们放在同一个组中。
这可能吗?
答案 0 :(得分:2)
您可以在同一组中使用lookbehind断言匹配备用部分:
>>> print re.search('(a|(?<=b)c)', 'bc').group(1)
c
>>> print re.search('(a|(?<=b)c)', 'a').group(1)
a