javascript - Javascript - 捕获重复序列?
问题描述
假设我有一个字符串,
"Testing éééé 123"
我想去掉所有出现的
é
以及之前和之后的所有空格,只需将其替换为一个空格,最终结果如下:
"Testing 123"
您如何捕获字符序列的重复,即重复
é
,对于 Javascript 正则表达式?
解决方案
反向引用是这种事情的朋友。
正则表达式中允许反向引用,允许您匹配与第一个相同的重复模式。例如,让我们匹配您的 char 实体:
/(&#x[0-9a-f]+;)\1+/i
这将匹配它找到的第一个 char 实体,然后继续在它之后链接任意数量的相同实体。
如果要删除重复的字符,甚至可以将其进一步扩展为:
/(.+)\1+/i
它将匹配任何重复字符(包括空格)和复合模式的序列。但是请注意,这将消除文本中重复的字母(如果有的话)。