正则表达式匹配与可选部分交替

时间:2015-10-20 16:49:08

标签: python regex

我正在尝试制作正则表达式以匹配同一组中的一个选项或另一个选项,在此示例中,组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

由于只有一个组匹配,我希望正则表达式输出将它们放在同一个组中。

这可能吗?

1 个答案:

答案 0 :(得分:2)

您可以在同一组中使用lookbehind断言匹配备用部分:

>>> print re.search('(a|(?<=b)c)', 'bc').group(1)
c
>>> print re.search('(a|(?<=b)c)', 'a').group(1)
a