PHP正则表达式和DocComment值解析
我正在尝试解析doc块注释的值PHP正则表达式和DocComment值解析,php,Php,我正在尝试解析doc块注释的值 $str = "/** * @title View/List Permissions * @description Allow user to view list of permissions */"; 我正在使用的代码如下所示: $re = "/^.*@title\s+(\S*).*@description\s+(\S*).*$/s"; preg_match($re, $str, $matches); 目前的结果如下: [0] View/List [
$str = "/**
* @title View/List Permissions
* @description Allow user to view list of permissions
*/";
我正在使用的代码如下所示:
$re = "/^.*@title\s+(\S*).*@description\s+(\S*).*$/s";
preg_match($re, $str, $matches);
目前的结果如下:
[0] View/List
[1] Allow
如何获得“填充视图/列表”权限并允许用户查看权限列表
我试图通过用\s+\s.*替换\s+\s**来修改正则表达式,虽然它在某种程度上起作用,但它正在从下一行添加*
任何想法都会有帮助
谢谢试试看
/^.*@title\s+(.*)\s*\*\s*@description\s+(.*).*$/s
您遇到的问题有:
1当您执行\S*时,它会在您到达的第一个空格字符(在本例中为空格)后停止,因此您需要执行此操作*
2您需要在权限空格或返回字符后处理任意数量的空格,后面跟一个*,后面跟@description之前的任何附加空格
希望这有帮助我将\S改为[^\n],并将字符串的其余部分与行的结尾匹配
^.*@title\s+([^\n]*).*@description\s+([^\n]*).*$
产出:
MATCH 1
1. [14-35] `View/List Permissions`
2. [52-90] `Allow user to view list of permissions`
[^]是一个负字符类,因此可以列出所有不想匹配的字符。[^\n]表示匹配字符不是新行