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

正则表达式如何在捕获组匹配时排除指定固定后缀内容

正则捕获组匹配时自动剔除冗余片段的实现方法

待匹配原始内容

Current ACLs for resource `ResourcePattern(resourceType=TOPIC, name=aa-environment.topic-ok, patternType=LITERAL)`:

Current ACLs for resource `ResourcePattern(resourceType=TOPIC, name=bb-environment.topic-deleted - marked for deletion, patternType=LITERAL)`:

原有正则存在的问题

原先使用的正则表达式:

^Current ACLs for resource \`ResourcePattern\(resourceType=(\w+), name=(\S+), patternType=(\w+)\)\`

该正则name字段捕获组使用\S+贪婪匹配所有非空白字符,会将第二条记录携带的 - marked for deletion后缀一并捕获到Group2中,无法得到纯净的topic名称。

修正后的正则

^Current ACLs for resource \`ResourcePattern\(resourceType=(\w+), name=(\S+?)(?: - marked for deletion)?, patternType=(\w+)\)\`

改动逻辑说明

  • 将name捕获组的\S+替换为\S+?,采用非贪婪模式匹配非空白字符,匹配到后续终止标识就立刻停止
  • 新增非捕获组(?: - marked for deletion)?,匹配0次或1次固定的删除标记后缀,该部分内容不会被纳入捕获结果,实现自动剔除效果
  • 保留name字段后的逗号作为匹配锚点,无论条目是否携带删除后缀,都会在字段分隔的逗号位置终止name字段的匹配

最终捕获结果

两个条目的Group2捕获值完全符合预期:

  • aa-environment.topic-ok
  • bb-environment.topic-deleted

该方案不需要额外对捕获结果做后置字符串处理,正则匹配阶段就可以直接得到目标值。

内容的提问来源于stack exchange,提问作者Fredrik Lysén

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 14:06:31