2015-09-13 94 views

回答

1

the documentation(重點煤礦):

返回的數目非重疊的範圍出現串 的[開始,結束]。可選參數開始結束被解釋爲切片符號。

1

字符串是「BABAB」。通過使用count()它將返回如下所示的非重疊匹配的數目:「BAB | AB」,因此它只會計數一次。嘗試使用字符串「BABBAB」,您將得到2個數字。例如:

>>> x = "BABAB" 
>>> x.count("BAB") 
1 
>>> x = "BABBAB" 
>>> x.count("BAB") 
2 
2

‍‍str.count僅返回number of non-overlapping matches,如果你想獲得所有比賽的數量包括重疊的比賽,你可以使用正則表達式與re.findall

>>> re.findall(r'(?=(BAB))',"BABAB") 
['BAB', 'BAB'] 

而對於計算匹配的數量,您可以使用內的發電機表達sum功能和用途re.finditer代替re.findall其更存儲器的使用的術語優化:

>>> sum(1 for _ in re.finditer(r'(?=(BAB))',"BABAB")) 
2 

(?=(BAB))爲符合其隨後BAB的地方,一個positive look-ahead

相關問題