2014-04-29 76 views
0

我已经使用的代码问题与的preg_match

$des = "/** * @description here is the description * * * */"; 

preg_match('/@description(.*?)\*/', $des, $match); 

var_dump($match); 

核心PHP文件,它工作正常。

但是当我在cakephp视图中尝试相同时,这不起作用。

在CakePHP视图我用它作为:

preg_match_all('/@description(.*?)\*/', $commentForClass, $match); 
pr($match); 

但是在这里$匹配返回一个空数组。

任何人都可以给我解决方案?

+0

'$ commentForClass'是否包含换行符?如果是这样,请添加'm'修饰符。 – Halcyon

+0

'$ des'和'$ commentForClass'是一样的吗?你用这里给出的描述重现了错误吗?你的描述实际上是多行吗? – Robin

+0

这不是CakePHP相关的,它是简单的PHP。在什么情况下使用它并不重要。它始终保持不变。我删除了错误的标签。 – mark

回答

0

preg_match_all('/@description(.*?)\*/m', $commentForClass, $match);

m是多修改它的^匹配和$每不是每个整个输入(默认)线。

您可能想要使用i修饰符来支持所有的案例变体。

用于测试正则表达式使用regexr.com或更复杂的regex101.com或终极工具debuggex.com(付费,免费的小计划)。