假设我有一个字符串:
string = 'AvBvC'
我希望匹配A
,B
和C
,这就是我所做的:
match = re.search('(.*)v(.*)', string)
print match.groups()
问题是,结果表明:
('AvB', 'C',)
而不是我想要的,这是
('A', 'B', 'C',)
如何让它捕捉所有重叠的模式..?
感谢。
(我知道有一些帖子涉及同一个问题,但没有找到Python的明确答案)
答案 0 :(得分:2)
你的问题有点不清楚,你似乎有比实际节目更复杂的字符串。
仅使用search()
匹配第一次匹配,您可以使用findall()
来匹配所有匹配项。
matches = re.findall(r'[^v]+', string)
['A', 'B', 'C']
对于您需要拆分的某些字符,另一个选项是split
。
>>> re.split('v', 'AvBvC')
['A', 'B', 'C']
答案 1 :(得分:2)
使用re.split
>>> import re
>>> re.split('v', 'AvBvC')
['A', 'B', 'C']
并进一步证明......
>>> re.split('vw', 'AAvwBBvwCC')
['AA', 'BB', 'CC']