===================================================/* xxxx */
.aaa {
background-image:url(/a.png) !important;
}
/* yyyy */
.bbb {
background-image:url(/b.png) !important;
}
.ccc{
background-image:url(/c.gif) !important;
}
/* zzzz */
.ddd{ color: black;}
.eee{background-image:url(/e.png) !important;}===================================================
这是个css文件,内容就是上面===中间部分,比如这里有3个区块,分别是3种颜色,怎么能用一个正则把这3个区块读出来,
最好是读出来的$array里不带 /* ... */ 的, 只有那些 .xxx 的css
.aaa {
background-image:url(/a.png) !important;
}
/* yyyy */
.bbb {
background-image:url(/b.png) !important;
}
.ccc{
background-image:url(/c.gif) !important;
}
/* zzzz */
.ddd{ color: black;}
.eee{background-image:url(/e.png) !important;}===================================================
这是个css文件,内容就是上面===中间部分,比如这里有3个区块,分别是3种颜色,怎么能用一个正则把这3个区块读出来,
最好是读出来的$array里不带 /* ... */ 的, 只有那些 .xxx 的css
(
[0] =>
.aaa {
background-image:url(/a.png) !important;
}这个是在 /* xxxx */ 下
啊哈 完全看不明白这个正则。
/* xxxx */
.aaa {
background-image:url(/a.png) !important;
}
/* yyyy */
.bbb {
background-image:url(/b.png) !important;
}
.ccc{
background-image:url(/c.gif) !important;
}
/* zzzz */
.ddd{ color: black;}
.eee{background-image:url(/e.png) !important;}
TEXT;preg_match_all("#(\w+?)\s*\*/(.+?)(?:/\*|$)#s", $s, $r);
foreach($r[1] as $i=>$t) {
$o[$t] = $r[2][$i];
}
print_r($o);
Array
(
[xxxx] =>
.aaa {
background-image:url(/a.png) !important;
} [yyyy] =>
.bbb {
background-image:url(/b.png) !important;
}
.ccc{
background-image:url(/c.gif) !important;
} [zzzz] =>
.ddd{ color: black;}
.eee{background-image:url(/e.png) !important;}
)关于使用的正则规则串说明:
1、#\*/(.+?)(?:/\*|$)#s
2、#(\w+?)\s*\*/(.+?)(?:/\*|$)#s# 自定义正则表达式定界符,因为默认的定界符 / 在规则中出现时要转义,导致看不清楚
(?:/\*|$) 表示匹配 /* 或 串尾, (?: )表示不作为向后引用,即不出现在结果中
(.+?) 表示非贪婪匹配任意字符
其余就很普通了