我有一个庞大的遗留PHP代码库,有很多这样的代码:
try {
doSomethingImportant();
} catch (Exception $e) {
}
有很多代码,有人认为吞下所有异常然后对它们不采取任何行动是个好主意。有时会有评论:
} catch (Exception $e) {
// do nothing
}
我希望将一些RegEx插入到Eclipse的搜索中,找到大部分这些地方,以便我可以进行调查和重构。我很容易找到捕获块:
catch.*\{.*\}
当catch块具有以下一个或多个条件时,匹配的适当方法是什么:
//
只有评论和空白/* */
评论和仅限空格//
和/* */
仅限评论和空白 //
很简单,但我不确定如何使用/*
*/
来处理多行内容,而不是。有什么想法吗?
答案 0 :(得分:6)
catch[^{]*\{\s*(?:\/\/[^\n]*|\/\*(?:[^\n]*\n)*[^\n]*\*\/)*\s*}
您可以使用它来匹配多行。
参见演示