2017-08-02 114 views
1

我想寫一個自定義規則爲SwiftLint。繼在自述的方向,我已經添加了以下到.swiftlint.yml如何使用正則表達式量詞*和+爲SwiftLint自定義規則

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

似乎量詞可以應用於您明確定義的字符集。在這種情況下,代替.[\h\S](其中包括水平空白字符和任何其他不是空白字符的字符)就足夠了。

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

如果有人知道如何使量詞與.一起工作,我仍然有興趣知道!