正则表达式删除重复的字母,但不删除数字

时间:2016-06-01 19:38:50

标签: regex

删除相邻的重复字母而不是数字的相应正则表达式是什么?

例如:

p11ppppl  --> p11pl

我有以下正则表达式:

 /[^\w\s]|(.)(?=\1)/g

但这也取代了重复的数字。

1 个答案:

答案 0 :(得分:4)

我会这样做(可视化here):

/([a-zA-Z])(?=\1)/g

这是Python中的一个例子:

In [21]: re.sub(r'([a-zA-Z])(?=\1)', '', 'p11ppppl')
Out[21]: 'p11pl'

你也可以使用:

/([\D])(?=\1)/g

除了数字之外的所有内容,或者:

/([\w])(?=\1)/g

表示所有“单词字符”。

如评论中提到的@Casimir et Hippolyte,我们也可以使用:

/([a-zA-Z])\1+/g

\1作为替换字符串,这可能是更好的方法。

相关问题