我想捕捉两组,但其中一组在非捕获组内。即。
import re
text = 'column{fields}'
parsed = re.search(r'(\w+)(?:{(\w+)})', text)
parsed.groups() # prints ('column', 'fields')
虽然有效,但如果我的文字只有'column'
,则regex
为NoneType。
答案 0 :(得分:1)
您可以选择第二个非捕获组:
>>> text = 'column'
>>> parsed = re.search(r'(\w+)(?:{(\w+)})?', text)
>>> parsed.groups()
('column', None)
?
末尾的 (?:{(\w+)})?
将在column
之后成为一部分,即(?:{(\w+)})
可选。