Skip to main content
 首页 » 编程设计

Python正则表达式来匹配多次出现的单词

2024年10月25日31lyj

我想使用 re.search(或者更准确地说,pandas.str.contains)来匹配至少包含单词“car”的字符串两次(或恰好两次,以更容易的为准)。例如,考虑两个字符串

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

我正在搜索的正则表达式应该匹配 string1,而不是 string2。我正在玩前瞻性游戏(例如 Car(?=Car)),但出现了完全奇怪的行为(不出所料,我从来没有掌握正则表达式...)。

请您参考如下方法:

您正在寻找的模式是 Car.*?Car,这是 Car 的两次出现,由任何东西(或根本没有)分隔。这将匹配包含至少两次 Car 的任何字符串:

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

非贪婪星 *? 将确保 re.search 在找到两个事件后立即停止。

如果 string1 包含行终止符,还要添加 re.MULTILINE 标志。