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'
。