【问题标题】:How to use regex quantifiers * and + for SwiftLint custom rule如何将正则表达式量词 * 和 + 用于 SwiftLint 自定义规则
【发布时间】:2018-01-10 00:38:00
【问题描述】:

我正在尝试为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 自定义规则中使用 *+

【问题讨论】:

    标签: swift static-analysis swiftlint


    【解决方案1】:

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

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

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

    【讨论】:

    • 天啊,我希望我早点用谷歌搜索一下。我花了 3 个小时试错。
    猜你喜欢
    • 2016-07-22
    • 2018-07-13
    • 2016-09-09
    • 2013-10-17
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    相关资源
    最近更新 更多