首页 文章

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

提问于
浏览
1

我正在尝试为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 回答

  • 1

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

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

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

相关问题