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

如何编写正则检测Object()链式调用中是否调用了modifierD

链式调用缺失指定修饰符的正则检测方案

可以通过正则实现,你的现有正则问题在于负向预查的作用范围仅覆盖了Object()后的首个调用项,没有对整个链式调用的所有内容做校验,因此出现非首项调用modifierD时的误判。

适配需求的正则写法

需要搭配m(多行匹配)修饰符使用:

^\s*Object\(\)(?:(?!\.modifierD\(\))[\s\S])+$

如果你的正则引擎支持s(单行模式,让.匹配换行符),也可以简化写为:

^\s*Object\(\)(?:(?!\.modifierD\()).+$

正则逻辑说明

  • ^\s*Object\(\):匹配带任意前置缩进、以Object()开头的链式调用起始行
  • (?:(?!\.modifierD\(\))[\s\S])+:非捕获组,每匹配一个字符前都会校验后续位置是否存在.modifierD(),只要存在就终止匹配,确保整个链式调用块内没有目标修饰符才会完全匹配
  • $:匹配到链式调用块的结束位置

匹配效果验证

  • 会命中匹配(需要触发linter警告,缺失modifierD)的代码:
Object()
    .modifierA()
    .modifierB()
    .modifierC()
  • 不会命中匹配(存在modifierD,无需警告)的代码,不管modifierD在链式调用的任意位置都生效:
Object()
    .modifierA()
    .modifierD()
    .modifierC()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:54:06