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

编写正则表达式:匹配指定前缀且排除操作符的目标字符串

正则匹配解决方案

问题场景

给定字符串:

testInputs.abc_def.alpha=abc^ORtestVars.var23.nameISEMPTY^testInputs.alpha_bravo.more.otheroneCONTAINSsomething^testVars.anotherone!=abc^testVars.mYVar!=abc

需要精准匹配以下变量,同时支持{{var}}格式的变量,且不能将ISEMPTY、CONTAINS等操作符包含进匹配结果:

  • testInputs.abc_def.alpha
  • testVars.var23.name
  • testInputs.alpha_bravo.more.otherone
  • testVars.anotherone
  • testVars.mYVar

解决方案正则

({{)?(testInputs\.|testVars\.)[a-zA-Z0-9_\.]*(?=(?:}})?(?:=|ISEMPTY|CONTAINS|!=|$|\^))(}})?

正则说明

  • ({{)?:可选匹配变量开头的双大括号
  • (testInputs\.|testVars\.):匹配固定前缀,点号做转义处理
  • [a-zA-Z0-9_\.]*:匹配变量主体部分,允许字母、数字、下划线和点号,长度不限
  • (?=(?:}})?(?:=|ISEMPTY|CONTAINS|!=|$|\^)):正向预查断言,确保匹配的变量后面紧跟的是可选的闭合双大括号}},然后是操作符(=、ISEMPTY、CONTAINS、!=)、字符串结尾$或者分隔符^——这是核心逻辑,用来截断变量和后续操作符的边界,避免误匹配操作符内容
  • (}})?:可选匹配变量结尾的双大括号

验证示例

  • 对于{{testInputs.myinput}}=abc,会匹配到{{testInputs.myinput}}
  • 对于{{testVars.my_var}}ISEMPTY,会匹配到{{testVars.my_var}}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 17:13:20