我发现了一个代码片段,用于删除重复的连续字符,并通过网络中的regex保留Python中的第一个字符,如下所示:
import re
re.sub(r'(?s)(.)(?=.*\1)','','aabbcc') #'abc'
但是如果字符串是'aabbccaabb'那就有一个缺点。它会忽略第一个' aa' bb'然后转出“#cab;”。
re.sub(r'(?s)(.)(?=.*\1)','','aabbccaabb') #'cab'
有没有办法通过正则表达式来解决它?
答案 0 :(得分:4)
如果没有正则表达式,请检查前一个字符是否与当前字符相同,使用带有条件的列表推导并加入结果:
Drop
答案 1 :(得分:2)
只需删除正向前方的.*
。
import re
print re.sub(r'(?s)(.)(?=\1)','','aabbcc')
print re.sub(r'(?s)(.)(?=\1)','','aabbccaabb')
输出:
abc
abcab