如何替换多个连续的重复字符

时间:2016-06-26 12:41:13

标签: python regex

我有一个如下所示的字符串。

runOnUiThread(new Runnable() {
      @Override public void run() {
            holderProfile.setImageBitmap(image);
      }
});

我想将副本替换为一行RegEx中的一个字符,以获得以下结果。

aabbccddee

我可以通过

轻松完成此操作
abcde

但这并不像我想要的那样优雅。

3 个答案:

答案 0 :(得分:1)

我找到了答案。

input_string = re.sub(ur"([a-z])\1+", r"\1", input_string)

答案 1 :(得分:1)

使用itertools 中的groupby(几乎从文档中复制/粘贴)

>>> from itertools import groupby
>>> ''.join([k for k, g in groupby('aabbccddee')])
abcde

答案 2 :(得分:0)

你也可以这样做:

string = "aabbccddee"
print("".join(sorted(set(string), key = string.index)))

输出:

abcde

你甚至可以在这里使用OrderedDict

from collections import OrderedDict
string = "aabbccddee"
print("".join(OrderedDict.fromkeys(string)))