Notepad++正则替换括号:移除左括号,将右括号替换为连字符
Notepad++正则替换括号的正确写法
你的需求是:移除目标语句的左括号,把对应的右括号替换成连字符(-),同时跳过HTML注释、<style>标签内容、<script>标签内容以及rgb()颜色值里的括号,避免误替换。
你之前的正则问题出在捕获组(.+?\))把右括号也包含进去了,导致替换后右括号仍保留在结果里。
正确的查找正则
(<!--.*?-->|<style[\s\S]*?</style>|<script[\s\S]*?</script>|rgb\(\d+,\s\d+,\s\d+\))(*SKIP)(*F)|\((.+?)\)\s*again
替换内容
$2 - again
逻辑说明
- 开头的
(*SKIP)(*F)部分和你原逻辑一致,负责跳过不需要处理的内容,确保注释、样式脚本代码、rgb颜色里的括号不被修改。 - 将原捕获组
(.+?\))调整为(.+?),仅提取括号内的内容(不含右括号),替换时用$2引用该内容,再拼接- again,就能实现移除左括号、将右括号替换为连字符的效果。
测试验证
针对你提供的测试片段:
- 原内容
<p>(Mal&eacute;) again</p>会被替换为<p>Mal&eacute; - again</p> - HTML注释里的
(Malé)、style里的(min-width: 1281px)、rgb颜色值rgb(0, 0, 0)均不会被修改,符合预期。
内容的提问来源于stack exchange,提问作者user30745941
相关产品推荐
相关产品推荐

