这适用于正则表达爱好者:)
FLOW3的Code Convention声称你应该使用@return注释不返回任何内容的方法void:
/**
* A method
*
* @return void
*/
我一直忘记这一点,并且希望使用netbeans对我错过的所有方法进行regexp ...
到目前为止我得到了
\*\s[^@return]+.*(\n)\s.\*/
哪种方法效果不好:
/**
* Method that gets matched.
*
* @param string $comment
*/
public function aMethod() {
// Some Code
}
/**
* A method that does not get matched and shouldn't.
*
* @param string $test
* @return void
*/
public function anotherMethod($test) {
// Some Code
}
/**
* A variable that get's matched but should not
* be matched.
*
* @var string
*/
protected $var;
/**
* Why is this method getting matched?
*
* @return void
*/
private function thirdMethod() {
// Code
}
你会如何匹配?
这是regexp测试器中的example:
答案 0 :(得分:2)
负面的背后断言可能会有所帮助:
\*\s*@[a-z]+(?<!return)\s+.+\s*\*/\s*(?:public|protected|private)?\s+function
这将匹配任何没有@return作为docblock最后一行的函数。它可能有一些误报,即@return在那里但在最后一行没有,但这是一个好的开始。
请注意,这在Regex测试器中不起作用,因为JavaScript不支持lookbehind断言。 Here's an example