在将此字符串解析为functionaly form(array)之前,我会在多行字符串中找到一些值:
/**
* @type string
* @access read|write
* @filling true
*/
我怎样才能在这个字符串中找到每3个值(@ type,@ access和@filling) 我尝试使用类似的东西:
preg_match('/^.*@type{1}.*@access{1}.*@filling{1}.*$/',$string);
但不起作用。有人有想法解决这个问题吗?我会很有意思的
答案 0 :(得分:0)
据我所知.
与空格不匹配(如tab,换行符,空格)。您可以通过在必要时放置\n
来明确提供新行。
答案 1 :(得分:0)
您只需要使用捕获组,加上\S
代替.
和dotall
修饰符:
$matches = array();
preg_match('/^.*@type\s+(\S*).*@access\s+(\S*).*@filling\s+(\S*).*$/s',$string,$matches);
echo "type: $matches[1]\n";
echo "access: $matches[2]\n";
echo "filling: $matches[3]\n";