基本上我正在阅读docblock中的自定义注释
/**
* This exception is thrown when no constant function is found.
*
* @author Time.ly Network Inc.
* @since 2.0
*
* @instantiator Ai1ec_View_Factory Category_Exception
* @package AI1EC
* @subpackage AI1EC.Config
*/
class Ai1ec_Constants_Not_Set_Exception extends Ai1ec_Exception {
}
我获取了docblock,然后尝试使用
获取注释 $r = new ReflectionClass($tokens[$i][1]);
$doc = $r->getDocComment();
preg_match_all('#^.*.@instantiator\s+(.*?)\n#s', $doc, $annotations);
这实际上有效,但并不是最佳选择。我试过了
preg_match_all('#^\s\\*\s?@instantiator\s+(.*?)\n#s', $doc, $annotations);
表示匹配一个空格,一个星形,零个或一个空格@instantiator一个或多个空格然后得到任何东西直到行尾但它不起作用,没有匹配。 另外,我怎样才能在正则表达式的行尾修剪任何最终的空格?
答案 0 :(得分:3)
你不需要s
标志,也没有双重转义,试试这个正则表达式:
preg_match_all('#^\s*[*]\s*@instantiator\s+(.*)$#im', $doc, $annotations);