php正则表达式连续的多个空格,我需要一个正则表达式,它匹配一个空格,星号(*),一个或多个空格,然后是PHP中的一个单词...

基本上我正在阅读文档块中的自定义注释

/**

* 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 {

}

我得到了文档块,然后尝试使用

$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一个或多个空格,然后得到任何内容,直到行尾,但它不起作用,没有匹配项.

另外我如何在正则表达式行的末尾修剪任何最终的空格?

解决方法:

您不需要s标志,也不需要双重转义,请尝试以下正则表达式:

preg_match_all('#^\s*[*]\s*@instantiator\s+(.*)$#im', $doc, $annotations);

标签:php,regex

来源: https://codeday.me/bug/20191122/2060478.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>