我想捕獲序列' AE'
(如果有)或位於序列' BE'
之前的單詞(如果有的話)或兩個單詞(如果兩個序列都出現在字符串中)之前的單詞。捕獲兩個可選組
我試圖用以下正則表達式:
TEST = re.compile(
r'(.*?)'
r'(?:(\w+) AE)?'
r'.*?'
r'(?:(\w+) BE)?')
它捕獲任一前述' BE'
或字前述' AE'
但不 兩個單詞的單詞。
>>> TEST.match('').groups()
('', None, None)
>>> TEST.match('foo AE').groups()
('', 'foo', None)
>>> TEST.match('foo BE').groups()
('', None, 'foo')
>>> TEST.match('foo AE bar BE').groups()
('', 'foo', None)
相反,我想輸出的最後一行是
>>> TEST.match('foo AE bar BE').groups()
('', 'foo', 'bar')
're.findall'在這裏很有用。 –