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

正则表达式匹配花括号内分号与空格的贪婪匹配问题求助

解决正则表达式贪婪匹配导致的错误匹配问题

你的问题核心在于原正则的贪婪匹配特性:.*会尽可能多地抓取字符,哪怕跨越多个花括号对,导致把花括号外的分号误判为花括号内的内容,进而错误匹配第4行。

修正后的正则表达式

要精准匹配「花括号内部包含分号」的行,你可以使用:

^.*\{[^{}]*;[^{}]*\}$

逐部分解释这个正则

  • ^ 和 $:分别匹配行的开头和结尾,确保我们匹配的是整个行(如果你的匹配场景是提取字符串而非整行,可以去掉这两个符号)
  • .*:匹配花括号对之前/之后的任意内容(这里不需要非贪婪,因为我们已经限制了花括号内的内容范围)
  • \{:匹配左花括号
  • [^{}]*:匹配任意数量的「非花括号字符」,确保我们不会跨越到下一个花括号
  • ;:匹配我们要找的分号(必须在花括号内部)
  • [^{}]*:继续匹配分号之后的非花括号字符
  • \}:匹配右花括号

测试你的示例行

  • 第1行 LWD{ARC,STETH,SONSCOPE,ADN}:花括号内无分号 → 不匹配
  • 第2行 LWD{GR; RES,PWD} 13-3/8 @ 8010; LOT 11.1;:花括号内有分号 → 匹配
  • 第3行 LWD{GR,RES,AIT,DEN,NEUT; GR,DSI} @ 8800; NO SWC; RNG CSG:花括号内有分号 → 匹配
  • 第4行 LWD{GR,RES,DEN,NEUT} @ 10400; NO SWC; LWD{GR,RES} @ 12075; NO SWC; 13-5/8 @ 11998; WOC:所有花括号内都无分号 → 不匹配

完全符合你的需求!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 08:42:31