Regex pragma标记的SwiftLint规则

Regex pragma标记的SwiftLint规则,regex,swiftlint,Regex,Swiftlint,我正在尝试实现自定义swiftlint规则来跟踪“//MARK:”之前少于两行的时间。我不擅长正则表达式。这是我的规则: custom_rules: pragma_mark: name: "Wrong pagma mark format" regex: "([^\n\n]?\/\/ MARK:)" message: "Please leave two lines before // MARK:" severity: warning 但这个正则表达式是错误的。我做错了什么?也许swift

我正在尝试实现自定义swiftlint规则来跟踪“//MARK:”之前少于两行的时间。我不擅长正则表达式。这是我的规则:

    custom_rules:
pragma_mark:
name: "Wrong pagma mark format"
regex: "([^\n\n]?\/\/ MARK:)"
message: "Please leave two lines before // MARK:"
severity: warning

但这个正则表达式是错误的。我做错了什么?也许swiftlint已经有了这个规则?但是我找不到它

你需要用负面的眼光看后面。这是一个起点:

(?<!\n\n)\/\/ MARK:
(?
这里有一个页面解释了它是如何工作的,并提供了一些测试用例


您可能希望使此项不区分大小写,并允许在“标记”前后出现空格。

请自己查看:您需要在后面进行负面查看。使用
[^\n\n]
表示“匹配一个字符,该字符既不是
\n
也不是对我不起作用的“\n”:(`}\n}\n//MARK:Header Extension\n Extension filtervewcontroller{`此处没有警告。可能自定义规则格式错误?用失败的测试用例创建一个regexr页面,并将其发布到此处。@SeverynKatolyk Oops,我已将其否定。我有一个肯定的查找(
(?)?