我正在尝试使用正则表达式解析字符串。我得到的结果是一个没有内容的多维数组。它返回正确数量的子数组,但没有结果。下面是PHP结果,正则表达式代码和传入的字符串。有人可以显示结果为null的原因吗?这是一个示例,表明它不起作用http://sandbox.onlinephpfunctions.com/code/d9dead4e23b5784a9a5ba7a098a958edb7113f62
我得到的结果
Array ( [0] => Array ( ) [1] => Array ( ) )
正则表达式代码
$content = $fetcher->fetchFile($directory.'/'.$fileName);
preg_match_all('/\[@style\](.*?)\[@end\]/s', $content, $matches);
print_r($matches);
正在解析的字符串
ul.nav > li > a {
padding: 0 10px; }
/**
* @style
*/
button {
background: blue !important; }
/* @end */
/**
* @style
*/
span {
background: blue !important;
display: block;
height: 20px;
width: 20px; }
/* @end */
答案 0 :(得分:1)
您可以尝试使用:
preg_match_all("/\/\*\*\s*\*\s*\@style\s*\*\/(.*?)\/\*\s*\@end\s*\*\//s", $input, $matches, PREG_PATTERN_ORDER);
print_r($matches[0]);
这将输出:
Array
(
[0] => /**
* @style
*/
button {
background: blue !important; }
/* @end */
[1] => /**
* @style
*/
span {
background: blue !important;
display: block;
height: 20px;
width: 20px; }
/* @end */
)