[英]Python regex: overlapping patterns
假設我有一個字符串:
string = 'AvBvC'
我想匹配A
, B
和C
,這就是我所做的:
match = re.search('(.*)v(.*)', string)
print match.groups()
問題是,結果表明:
('AvB', 'C',)
而不是我想要的是
('A', 'B', 'C',)
如何使它捕獲所有重疊的模式..?
謝謝。
(我知道有一些關於同一問題的文章,但是還沒有找到關於Python的明確答案)
您的問題尚不清楚 ,您似乎比實際顯示的字符串要復雜得多。
使用search()
僅匹配第一個匹配項,可以使用findall()
匹配所有匹配項。
matches = re.findall(r'[^v]+', string)
['A', 'B', 'C']
另一個選擇是split
需要分割的某些字符。
>>> re.split('v', 'AvBvC')
['A', 'B', 'C']
使用re.split
>>> import re
>>> re.split('v', 'AvBvC')
['A', 'B', 'C']
並進一步示范...
>>> re.split('vw', 'AAvwBBvwCC')
['AA', 'BB', 'CC']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.