使用RegExr匹配PHP注释块内的evething

时间:2011-09-08 15:33:24

标签: php regex matching

我正在努力使用RegExr来处理PHP注释块中的所有内容。

/**
 * MATCH EVETHING HERE
 */

所以基本上,我希望在/**之后直接开始并在*/之前直接结束时匹配所有内容。

有人可以为我提供适当的RegExr。

提前致谢

编辑:已解决,其/\/\/*/*(.*?)*//s

2 个答案:

答案 0 :(得分:1)

preg_match_all('~/**(.*?)*/~ims', $from, $to); 

foreach($to[1] as $contents){
    //$contents contain comment (without /** */) 
}

答案 1 :(得分:0)

如果要捕获类的注释,可以使用ReflectionClass::getDocComment()方法使用PHP的反射器机制。

示例类文件:

/** 
* A test class
*
* @param  foo bar
* @return baz
*/
class TestClass { }

反思课程用法:

$rc = new ReflectionClass('TestClass');
var_dump($rc->getDocComment())

输出:

string(55) "/** 
* A test class
*
* @param  foo bar
* @return baz
*/"

<强>提示:
在ReflectionClass Manual页面上,a good comment提到了这个reg exp:

    $expr = "/((?:\/\*(?:[^*]|(?:\*+[^*\/]))*\*+\/)|(?:\/\/.*))/";