You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修正正则表达式以适配所有冗余文本去除场景?技术求助

修正正则表达式适配所有冗余符号去除场景

需求场景

需要去除特定格式的冗余符号与文本,具体示例如下:

{{c1::TEXT TO KEEP}}            -> TEXT TO KEEP
{{c1::TEXT TO KEEP::}}          -> TEXT TO KEEP
{{c1::TEXT TO KEEP::some text}} -> TEXT TO KEEP
{{c1::FIRST TEXT TO KEEP::some text}} SECOND TEXT TO KEEP {{c2::THIRD TEXT TO KEEP::}} -> FIRST TEXT TO KEEP SECOND TEXT TO KEEP THIRD TEXT TO KEEP

原正则问题

你编写的正则表达式 \{{2}c\d::(.+)(::.*)\}{2}(替换为 $1),仅能匹配第二、第三种带::后缀的场景,无法适配第一种无后缀的情况,也处理不好第四种混合正常文本与多标签的场景。

修正后的正则方案

使用以下正则表达式,替换内容仍设为 $1 即可覆盖所有场景:

{{c\d::(.*?)(?:::.*?)?}}

逻辑说明

  • {{c\d:::精准匹配开头的标签格式,\d兼容c1、c2这类带数字的标签
  • (.*?):非贪婪匹配要保留的核心文本,避免过度匹配到后面的::或闭合符}}
  • (?:::.*?)?:把::及后续冗余内容设为可选匹配(?表示这部分可有可无),同样用非贪婪匹配确保停在}}前
  • }}:匹配标签的闭合符号

这个正则能完美适配所有场景:

  • 第一种无::的场景:直接抓取{{cX::到}}之间的文本
  • 第二、三种带::的场景:跳过::及后面的冗余内容,只保留前面的目标文本
  • 第四种混合场景:可以多次匹配不同的{{cX::...}}标签,同时保留标签外的正常文本

内容的提问来源于stack exchange,提问作者Eugen N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 12:30:55