超过6个小时试图找到最好的PHP正则表达式来匹配特定的类名+:之前伪。例如,我有像这样的CSS代码
h1 {
font-size: 3em;
line-height: 1.65em;
}
p{line-height: 1.5em; margin: 10px 0;}
.action-admin:before{
content: "";
display: block;
width: 50px;
height: 50px;
}
.action-user:before{
content: "";
display: block;
width: 20px;
height: 20px;
}
footer{
clear: both;
}
所以,我想搜索所有类名与'匹配的css代码.action- {anyotherwords}:在'之前并将它们列在php变量中(将其处理为下一个动作)
所以,简单来说 - 我只想从上面的css中获取这些代码
.action-admin:before{
content: "";
display: block;
width: 50px;
height: 50px;
}
.action-user:before{
content: "";
display: block;
width: 20px;
height: 20px;
}
答案 0 :(得分:1)
您可以使用此正则表达式查找所有这些块:
\.action-[\w-]+:before\s*?\{[^}]+\}
示例:
preg_match_all("/\.action-[\w-]+:before\s*?\{[^}]+\}/", $css, $matches);
$actionCSS = implode("\n\n", $matches[0]);
只有动作块的CSS代码将位于$actionCSS
。