2017-02-01 127 views
1

我對Python很陌生。我知道find函數接受一個字符串p和一個子字符串s,並返回s在p中出現的索引。但是,如果我有這樣的事情有沒有辦法用函數「find」實現通配符方法?

p = 'abc' 
text = 'aaaabbaac' 
text.find(p) 

是否可以寫一個方法,讓我來設置通配符B和仍返回,而不是返回-1處A和C匹配指數?

我在一個有兩種方法的類中使用這個方法,find方法和一個「setwildcard」方法,它需要一個字符並做上面描述的。默認情況下,通配符設置爲None。

+4

否使用正則表達式和're.findall()'。 – DyZ

+0

我不知道如何。您能否解釋一下 – User

+0

問如何「使用正則表達式」太寬泛。看看這些文檔,並親自嘗試一下。該模塊在Python中被稱爲're',並且是標準庫的一部分。 –

回答

0

您可以將compile正則表達式模式轉換爲正則表達式對象,可以使用它的match()search()方法進行匹配。

import re 
reObj2 = re.compile(pattern) 
reObj2.search(s) 

re.match()將只匹配在字符串的開頭,而不是在每個 行的開頭。

re.search()掃描通過串尋找其中定期 表達模式產生一個匹配,並返回對應的 MatchObject實例的第一個位置。

此外,如果你想返回所有非重疊模式的匹配字符串,你可以使用re.findall()

看看re

希望這會有所幫助。

相關問題