我想找到评论的某些部分。以下是一些例子
/*
* @todo name another-name taskID
*/
/* @todo name another-name taskID */
目前正在使用以下正则表达式
'/\*[[:space:]]*(?=@todo(.*))/i'
返回以下内容:
* @todo name another-name taskID
or
* @todo name another-name taskID */
我怎样才能得到@todo和名字,但不是任何星号?
期望的输出
@todo name another-name taskID
@todo name another-name taskID
答案 0 :(得分:1)
试试这个:
$str=<<<STR
/*
* @todo name another-name taskID 1
*/
/* @todo name another-name taskID 2 */
STR;
$match=null;
preg_match_all("/\*[[:space:]]*(@todo[^(\*\/$)]*)/i",$str,$match,PREG_SET_ORDER);
print_r($match);
回声
Array
(
[0] => Array
(
[0] => * @todo name another-name taskID 1
[1] => @todo name another-name taskID 1
)
[1] => Array
(
[0] => * @todo name another-name taskID 2
[1] => @todo name another-name taskID 2
)
)
虽然不是一个完美的解决方案(注意$match[0][0]
中的行结尾)。