我有一个字符串,其中包含重复3次的随机字符对,对于ex "abababwhatevercdcdcd"
,我想删除这些对以获取字符串的其余部分,如前"whatever"
例如,我该怎么做?
我尝试了以下内容:
import re
re.sub(r'([a-z0-9]{2}){3}', r'', string)
但它不起作用
答案 0 :(得分:4)
这里需要反向引用才能重复实际进行的匹配,而不是尝试使用相同的模式进行新的匹配:
([a-z0-9]{2})\1\1
>>> import re
>>> re.sub(r'([a-z0-9]{2})\1\1', r'', "abababwhatevercdcdcd")
'whatever'
>>> re.sub(r'([a-z0-9]{2})\1\1', r'', "wabababhatevercdcdcd")
'whatever'
答案 1 :(得分:1)
对于多个角色,您可以使用:
(.{2,})\1+