在python中删除字符串中的连续重复字符

2024-04-25 19:48:50 发布

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

我打算用python实现this。作为一个简短的解释,我有一个类似11122_11255_12_223_12的字符串,我想在python中使用regex来获得类似12_125_12_23_12的输出

通过获得thispost的帮助,我用python编写了一些代码,但无法正常工作,下面是我用python编写的代码:

import re
regex = r"(.)\1+"
test_str = "11122_11255_12_223_12"
subst = "$1"
result = re.sub(regex, subst, test_str, 0, re.MULTILINE)

但是subst="$1"似乎不是用python工作的(它是用javascript工作的)
如上所述,我有一些字符串,比如11122\u 11255\u 12\u 223\u 12,我想要的输出是:12\u 125\u 12\u 23\u 12,这意味着下划线之间是一个数字,对于每个数字,如果有两个或两个以上的数字相邻(例如:223有两个2),我只想保留其中一个。 谢谢。你知道吗


Tags: 字符串代码testimportre数字resultjavascript
2条回答

也可以使用itertools.groupby

from itertools import groupby

string = "11122_11255_12_223_12"

''.join(key for key, group in groupby(string))

输出:

'12_125_12_23_12'
>>> import re
>>> regex = r"(.)\1+"
>>> test_str = "11122_11255_12_223_12"
>>> re.sub(regex, r'\1', test_str, 0, re.MULTILINE)
'12_125_12_23_12'

反引用的Python语法使用反斜杠(\),而不是美元。在module documentation中没有更多可添加的内容:

Backreferences, such as \6, are replaced with the substring matched by group 6 in the pattern.

相关问题 更多 >