我有以下css代码
thead
{
/*some code*/
}
tr,img {
/*some code*/
}
@page {
/*some code*/
}
p,h2,h3 {
/*some code*/
}
h2,h3 {
/*some code*/
}
img {
/*some code*/
}
我想要使用php正则表达式preg_match或preg_replace与img相关的所有css。 例如,如果我搜索img,则必须显示以下输出
tr,img {
/*some code*/
}
img {
/*some code*/
}
php代码
$str='img{ } .class_class { } #awesome_id{ }';
$search='img';
$str = preg_replace("~{(."$search".)}~s","", $str);
$arr = array_filter(explode(' ',$str));
print_r($arr);
答案 0 :(得分:0)
您可以使用此代码:
$re = '/.*\bimg\b.*?{(?s:.*?)}/i';
$str = "thead \n{\n /*some code*/\n}\ntr,img {\n /*some code*/\n}\n@page {\n /*some code*/\n}\np,h2,h3 {\n /*some code*/\n}\nh2,h3 {\n /*some code*/\n}\nimg {\n /*some code*/\n}";
preg_match_all($re, $str, $matches);
说明:
.*
- 在\bimg\b
- 一个字面的整个单词img
(由于i
标志而不区分大小写).*?
- 任何字符,但换行符,0或更多,但尽可能少{
- 文字{
(?s:.*?)
- 任何字符甚至是换行符(由于(?s:)
内联标记)但尽可能少}
- 文字}
。