簡體   English   中英

Python正則表達式:重疊模式

[英]Python regex: overlapping patterns

假設我有一個字符串:

string = 'AvBvC'

我想匹配ABC ,這就是我所做的:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM