RegEx用于在PHP源代码中查找空catch

时间:2015-04-16 15:07:15

标签: regex eclipse

我有一个庞大的遗留PHP代码库,有很多这样的代码:

try {
  doSomethingImportant();
} catch (Exception $e) {
}

有很多代码,有人认为吞下所有异常然后对它们不采取任何行动是个好主意。有时会有评论:

} catch (Exception $e) {
  // do nothing
}

我希望将一些RegEx插入到Eclipse的搜索中,找到大部分这些地方,以便我可以进行调查和重构。我很容易找到捕获块:

catch.*\{.*\}

当catch块具有以下一个或多个条件时,匹配的适当方法是什么:

  • 仅限空白
  • //只有评论和空白
  • /* */评论和仅限空格
  • ///* */仅限评论和空白

//很简单,但我不确定如何使用/* */来处理多行内容,而不是。有什么想法吗?

1 个答案:

答案 0 :(得分:6)

catch[^{]*\{\s*(?:\/\/[^\n]*|\/\*(?:[^\n]*\n)*[^\n]*\*\/)*\s*}

您可以使用它来匹配多行。

参见演示

https://regex101.com/r/sJ9gM7/122