我想使用 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 标志。
