2015-05-24 141 views
2

我想用re.search(或者更確切地說,pandas.str.contains)匹配一個字符串,只要它至少包含兩次單詞「car」(或者兩次,或者更簡單)。作爲一個例子,考慮兩個字符串Python正則表達式匹配多次出現的單詞

string1 = 'Car, Cat, House, Car' 
string2 = 'Car, Cat, House' 

正則表達式表達我尋找應該匹配string1,但不string2。我在前面玩(像Car(?=Car)這樣的東西),但得到了完全怪異的行爲(不出所料,我從來沒有得到正則表達式的處理...)。

回答

2

您正在尋找的圖案是Car.*?Car,這是兩次發生的Car,被任何東西(或根本沒有)分開。這將匹配包含Car至少兩個OCCURENCES任何字符串:

re.search(r"Car.*?Car", string1) 

非貪婪的明星*?將確保re.search一旦兩個OCCURENCES被發現停止。

如果string1包含行終止符,還會添加re.MULTILINE標誌。

+0

完美的作品 - 非常感謝! – user45893

相關問題