PHP Regex匹配特定的css类名+:before伪

时间:2014-01-09 17:38:47

标签: php css regex

超过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;
}

1 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式查找所有这些块:

\.action-[\w-]+:before\s*?\{[^}]+\}

enter image description here

示例:

preg_match_all("/\.action-[\w-]+:before\s*?\{[^}]+\}/", $css, $matches);
$actionCSS = implode("\n\n", $matches[0]);

只有动作块的CSS代码将位于$actionCSS