python正则表达式删除所有连续重复项除外www

时间:2016-11-12 20:44:53

标签: python regex

基本上,我有这样的字符串

wwwccccheapflightscom 
aaaamypage
wwwregularexpressions

现在我有了这个,它删除了长度大于3的所有连续重复。

re.sub(r"(\w)\1{2,}",'', string)

但我不希望它删除“www”,我也希望保留第一次出现的连续数字。所以基于这个例子,我想要

wwwcheapflightscom 
amypage
wwwregularexpressions

1 个答案:

答案 0 :(得分:1)

www添加否定前瞻,例如代码开头的(?!www)

(?!www)(\w)\1{2,}

演示:https://regex101.com/r/kXBAgV/1

如果您想保留第一次出现,请按@bobblebubble建议的\1替换

bobble的演示:https://www.regex101.com/r/4bjQlu/1

或者,您可以使用Positive Lookbehind (?<=)

  

注意:这在Python中不起作用,但它可以在PHP中使用,

(?<=(\w)|(www\w))(?:\w)\1{2,}

演示:https://regex101.com/r/kXBAgV/3