大括号之间的正则表达式

时间:2017-04-29 07:18:42

标签: regex

我正在编写自定义代码静态分析规则。

我想找到这样的覆盖功能,不要具有超级函数调用。

例如,regexp应该找到这个:

override func testFunc(num: Int) {
   print()
}

但是,找到这个:

override func testFunc(num: Int) {
   print()
   super.testFunc(num: num)
   print()
}

我们应该记住,函数内部可以包含额外的块。所以,我们还找不到这个:

override func testFunc(num: Int) {
   print()
   super.testFunc(num: num)
   let block = {
       print("inside block")
   }
   print()
}

我们不应该对块内的超级函数调用感兴趣。只在该功能内部。

我写了这个:override func\s(\w*)\(.*?\{.*?super\.\1.*?\}

但它不考虑块,它找到 超级函数调用的函数。而且我不知道如何反转这一点。

0 个答案:

没有答案