定制正则表达式以移除含特殊字符的重复字符序列
移除重复字符序列(含特殊字符)的正则方案
针对需要移除字符串中重复字符序列(支持含@等特殊符号)、且能清理多次连续重复的需求,直接用以下正则方案解决:
核心正则与替换规则
正则表达式
\b(\S+)\b(?:\s+\1\b)+
替换目标
$1
规则说明
\b:单词边界,保证只匹配完整的独立序列,不会误匹配长字符串里的子片段(\S+):捕获任意一个或多个非空白字符组成的序列——不管是字母数字,还是@、#、*这类特殊符号都能匹配,这就是我们要保留的唯一实例(?:\s+\1\b)+:匹配一次及以上的「空格+重复的目标序列+单词边界」组合,把所有连续重复的部分都纳入匹配范围,替换时直接用捕获到的第一个实例覆盖,就能去掉所有连续重复项
测试验证
输入字符串:
hello me now @@@ @@@ @@@ then method me @@@
执行替换后得到结果:
hello me now @@@ then method me @@@
完全符合需求——连续三次的@@@只保留一个,非连续的me和@@@不受影响。
内容的提问来源于stack exchange,提问作者Ph0ngvu
相关产品推荐
相关产品推荐

