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

求适用于SwiftLint自定义规则的正确正则表达式

正确的SwiftLint自定义规则正则表达式

针对你的需求,正确的正则表达式应该是:

var\s+(?!(is|has)[A-Z])[A-Za-z_][A-Za-z0-9_]*\s*:\s*Bool

正则逻辑说明:

  • var\s+:定位到变量声明的关键字var及其后的空白,确保我们聚焦在变量名的起始位置
  • (?!(is|has)[A-Z]):负向前瞻断言,排除变量名以is或has开头且首字母大写的情况(符合Swift布尔变量的常规命名规范)
  • [A-Za-z_][A-Za-z0-9_]*:匹配合法的Swift变量名(首字母为字母或下划线,后续可包含字母、数字、下划线)
  • \s*:\s*Bool:匹配变量类型部分,允许冒号前后存在任意空白字符,确保精准匹配Bool类型声明

匹配验证:

  • 无需告警(不匹配):isHello: Bool、hasStartWorkout: Bool——变量名以is/has开头,被负向前瞻规则排除
  • 需要告警(匹配):hello: Bool、@State private var showActionSheet: Bool = false——变量名不以is/has开头,且类型为Bool

之前尝试的问题分析:

  • 第一个正则(is|has)[A-Z][A-Za-z]*(: Bool):逻辑完全相反,匹配的是你不需要告警的带is/has前缀的变量
  • 第二个正则^(?!is|has)[A-Z][A-Za-z]*: Bool$:用^和$锚定了整行,但实际变量声明前可能存在属性包装器、访问修饰符等内容,导致无法匹配到目标变量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 17:29:56