首页 > 解决方案 > Javascript - 捕获重复序列?

问题描述

假设我有一个字符串,

"Testing   éééé     123" 

我想去掉所有出现的

é 

以及之前和之后的所有空格,只需将其替换为一个空格,最终结果如下:

"Testing 123" 

您如何捕获字符序列的重复,即重复

é

,对于 Javascript 正则表达式?

标签: javascriptregexsequencerepeat

解决方案


反向引用是这种事情的朋友。

正则表达式中允许反向引用,允许您匹配与第一个相同的重复模式。例如,让我们匹配您的 char 实体:

/(&#x[0-9a-f]+;)\1+/i

这将匹配它找到的第一个 char 实体,然后继续在它之后链接任意数量的相同实体。

如果要删除重复的字符,甚至可以将其进一步扩展为:

/(.+)\1+/i

它将匹配任何重复字符(包括空格)和复合模式的序列。但是请注意,这将消除文本中重复的字母(如果有的话)。


推荐阅读