移除字符串中的单个目标字符,保留连续重复的该字符子串
解决方案:移除单个特定字符,保留连续重复子串
- 核心逻辑:精准匹配单独出现的目标字符,通过正则的否定环视排除前后存在相同字符的情况(即连续重复的子串)。
- 正则表达式示例(以移除字符
a为例):
使用正则/(?<!a)a(?!a)/g,各部分含义:(?<!a):反向否定环视,确保当前匹配的a前面不是aa:匹配单个目标字符(?!a):正向否定环视,确保当前匹配的a后面不是ag:全局匹配标记,替换所有符合条件的单个字符
- 代码示例(JavaScript):
const originalStr = "aabbaaabccad"; const target = "a"; // 构建正则表达式 const removeSingleCharRegex = new RegExp(`(?<!${target})${target}(?!${target})`, "g"); const processedStr = originalStr.replace(removeSingleCharRegex, ""); console.log(processedStr); // 输出:aabbaaabccd - 特殊字符处理:如果目标字符是正则元字符(如
.,*,?等),需要先转义:const target = "."; // 转义正则特殊字符 const escapedTarget = target.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); const regex = new RegExp(`(?<!${escapedTarget})${escapedTarget}(?!${escapedTarget})`, "g");
内容的提问来源于stack exchange,提问作者Jeremy
相关产品推荐
相关产品推荐

