基本上,我有这样的字符串
wwwccccheapflightscom
aaaamypage
wwwregularexpressions
现在我有了这个,它删除了长度大于3的所有连续重复。
re.sub(r"(\w)\1{2,}",'', string)
但我不希望它删除“www”,我也希望保留第一次出现的连续数字。所以基于这个例子,我想要
wwwcheapflightscom
amypage
wwwregularexpressions
答案 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,}