如何使用regex删除重复的连续字符并保留第一个字符?

2024-04-29 09:07:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我在网上找到了一个删除重复的连续字符并通过regex在Python中保留第一个字符的代码片段,如下所示:

import re
re.sub(r'(?s)(.)(?=.*\1)','','aabbcc')  #'abc'

但是有一个缺陷,如果字符串是'aabbccaab',它将忽略第一个'aa'、'bb'而变成'cab'。在

^{2}$

有没有办法用正则表达式来解决这个问题?在


Tags: 字符串代码importre字符regexaaabc
2条回答

只需删除积极展望中的.*。在

import re

print re.sub(r'(?s)(.)(?=\1)','','aabbcc')
print re.sub(r'(?s)(.)(?=\1)','','aabbccaabb')

输出:

^{pr2}$

如果不使用当前字符的regex连接条件与前一个检查条件相同:

s='aabbccaabb'
print("".join([c for i,c in enumerate(s) if i==0 or s[i-1]!=c]))

相关问题 更多 >