Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式删除重复的字母,但不删除数字_Regex - Fatal编程技术网

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

Regex 正则表达式删除重复的字母,但不删除数字,regex,Regex,删除相邻重复字母而不是数字的适当正则表达式是什么 例如: p11ppppl --> p11pl 我有以下正则表达式: /[^\w\s]|(.)(?=\1)/g 但这也会替换重复的数字。我会这样做(可视化): 下面是Python中的一个示例: In [21]: re.sub(r'([a-zA-Z])(?=\1)', '', 'p11ppppl') Out[21]: 'p11pl' 您还可以使用: /([\D])(?=\1)/g /([a-zA-Z])\1+/g 除数字外的所有内

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

例如:

p11ppppl  --> p11pl
我有以下正则表达式:

 /[^\w\s]|(.)(?=\1)/g
但这也会替换重复的数字。

我会这样做(可视化):

下面是Python中的一个示例:

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

/([\D])(?=\1)/g
/([a-zA-Z])\1+/g
除数字外的所有内容,或:

/([\w])(?=\1)/g
对于所有“单词字符”

如评论中所述,我们还可以使用:

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

使用
\1
作为替换字符串,哪种方法可能更好。

可能吧?这很有效!|(\D)和删除(.)有什么作用?(我不太擅长正则表达式)
\D
匹配一个非数字字符。如果使用替换字符串
\1
编写:
/([a-zA-Z])\1+/g
,您将在一次替换中删除所有连续的重复项。(而不是用重复的字母替换一个)。使用原始字符串替换字符串
r'\1'
,或转义反斜杠
'\\1'