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

如何编写正则匹配不包含@Tag前缀的Scenario代码块?

正则解决方案

原写法问题

你之前编写的(?!@Tag-\d{4})\nScenario使用了负向前瞻语法,仅能校验当前位置之后的内容不符合@Tag-\d{4}规则,完全无法覆盖「校验Scenario前一行是否存在@Tag标签」的需求,因此匹配结果不符合预期。

正确正则

使用时需要开启多行模式(MULTILINE)和单行模式(DOTALL,即s flag,允许.匹配换行符),正则如下:

(?<!@Tag-\d{4}\n)^Scenario:.*?(?=\n{2}|\Z)

语法解释

  • (?<!@Tag-\d{4}\n):负向后视断言,确认当前Scenario行的前一行不是@Tag-加4位数字的标签行
  • ^Scenario::匹配行首起始的Scenario:标记,多行模式下^会识别每一行的行首位置
  • .*?(?=\n{2}|\Z):非贪婪匹配所有内容,直到遇到两个连续换行(块之间的分隔空行)或者文本结束位置,刚好完整覆盖整个Scenario块的内容

匹配结果

在你提供的测试文本中,该正则会精准匹配到目标第二个无前置@Tag标签的Scenario块:

Scenario:
Blabla

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:15:04