捕获非捕获组内的组

时间:2015-09-05 16:35:38

标签: python regex

我想捕捉两组,但其中一组在非捕获组内。即。

import re

text = 'column{fields}'
parsed = re.search(r'(\w+)(?:{(\w+)})', text)
parsed.groups() # prints ('column', 'fields')

虽然有效,但如果我的文字只有'column',则regex为NoneType。

1 个答案:

答案 0 :(得分:1)

您可以选择第二个非捕获组:

>>> text = 'column'
>>> parsed = re.search(r'(\w+)(?:{(\w+)})?', text)
>>> parsed.groups()
('column', None)
?末尾的

(?:{(\w+)})?将在column之后成为一部分,即(?:{(\w+)}) 可选