1

这是正则表达式爱好者的东西:)

FLOW3 的代码约定声称您应该使用 @return void 注释不返回任何内容的方法:

/**
 * A method
 *
 * @return void
 */

我一直忘记它,并想用 netbeans 对我错过的所有方法进行正则表达式...

到目前为止我得到了

\*\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
    }

你会如何匹配这个?

这是正则表达式测试器中的一个示例:

4

1 回答 1

2

否定的后向断言可能会有所帮助:

\*\s*@[a-z]+(?<!return)\s+.+\s*\*/\s*(?:public|protected|private)?\s+function

这将匹配任何没有 @return 作为文档块最后一行的函数。它可能有一些误报,即@return 存在但不在最后一行,但这是一个好的开始。

请注意,这在 Regex 测试器中不起作用,因为 JavaScript 不支持后向断言。这是一个例子

于 2012-04-04T13:12:19.230 回答