如何使用正则表达式量词*和+用于SwiftLint自定义规则

时间:2017-08-02 16:52:35

标签: swift static-analysis swiftlint

我正在尝试为SwiftLint编写自定义规则。按照自述文件中的说明,我已将以下内容添加到.swiftlint.yml

custom_rules:
  multi_clause_guard:
    regex: 'guard .*,'

但是,这个正则表达式不匹配我的项目中的任何行,尽管有足够的行匹配,例如:

guard let x = Int(s), let y = Int(t) else { return }

我已经为正则表达式尝试了各种其他值,并且一直工作直到引入量词。

  • 'guard .,'将匹配行guard a,
  • 'guard ..,'将匹配行guard _a,
  • 'guard .*,'guard a,
  • 行不匹配
  • 'guard .+,'guard a,
  • 行不匹配

我可以在SwiftLint自定义规则中使用*+吗?

1 个答案:

答案 0 :(得分:2)

似乎量词可以应用于您明确定义的字符集。在这种情况下,我只需将.替换为[\h\S](包括水平空格字符和任何其他不是空白字符的字符)。

custom_rules:
  multi_clause_guard:
    regex: 'guard [\h\S]*,'

如果有人知道如何使量词与.一起使用,我仍然有兴趣知道!