我正在尋找一種正則表達式模式來過濾掉句子中沒有重復連續字符的單詞。我嘗試r'(?!.*(\w)\1{3,}).+'過正則表達式模式,但它不起作用。例如,在句子“mike is amaaazing”中,我希望正則表達式模式只選擇“mike”和“is”。有任何想法嗎?
2 回答

慕姐4208626
TA貢獻1852條經驗 獲得超7個贊
您必須在開頭使用單詞邊界并將點替換\w為以確保您的前瞻不會超出測試的單詞。
>>> s = 'mike is amaaazing'
>>> [m[1] for m in re.findall(r'\b(?!\w*?(\w)\1)(\w+)', s)]
['mike', 'is']
由于re.findall在模式中定義時僅返回捕獲組,因此您可以使用列表推導來提取第二個捕獲組(其中是整個單詞)。
添加回答
舉報
0/150
提交
取消