Python裏統計一個字符串中子字符串的個數

以下摘自百度知道,歸類於此,方便學習查找。
舉例說明:s= 'abababab'

統計s中字符串‘aba'的個數
答案應爲3個的時候,用Python2.X版本如何寫程序?
如果答案爲2個的時候,即被統計過的字符不再參與統計,那麼代碼如何寫?
希望代碼能精簡一些。
拓展:如果要替換第二個'aba’爲‘bab’
程序又應該怎麼寫?

s= 'abababab'
不重複統計
s.count('aba')

重複統計 
import re
reg=re.compile("(?=aba)")
length=len(reg.findall(s))
print(length)

------------------------------------------------------------------------------------------------------------------------------

答案爲3(用正則):

1
2
3
4
>>> import re
>>> s= 'abababab'
>>> len(re.findall(r'(?=aba)', s))
3

答案爲2,用字符串的count方法:

1
2
3
4
>>> import string
>>> s= 'abababab'
>>> s.count('aba')
2

 

替換第二個'aba’爲‘bab’,用字符串的切片方法(可能方法醜陋了點,初學者見諒):

1
2
3
4
5
6
7
8
9
>>> s= 'abababab'
>>> pos = s.find('aba')
>>> sNew = s[pos+1:].replace('aba''bab'1)
>>> if pos == 0:
...  s[pos] + sNew 
... elif pos > 0:
...  s[:pos] + sNew
...  
'abbabbab'

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章