php – 正则表达式匹配CSS类名称

前端之家收集整理的这篇文章主要介绍了php – 正则表达式匹配CSS类名称前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试编写一个匹配有效的CSS类名结构的正则表达式.到目前为止我有这个:
$pattern = "([A-Za-z]*\.[A-Za-z]+\s*{)";

$regex = preg_match_all($pattern,$html,$matches);

但是,类名可以采用我的正则表达式不匹配的以下格式:

p.my_class{
}
p.thisclas45{
}

这些只是一些情况,我环顾四周找到了如何在样式块中命名类但无法找到任何内容的规则.任何人都知道类命名约定的规则在哪里?

我还需要考虑更多的案例吗?你会用什么正则表达式来匹配一个类名?

我已经使用PHP DOM Document类将其缩小为样式块.

看看 http://www.w3.org/TR/CSS21/grammar.html#scanner

根据这个语法和Which characters are valid in CSS class names/selectors?之后,这应该是扫描css类的正确模式:

\.-?[_a-zA-Z]+[_a-zA-Z0-9-]*\s*\{

注意:标记名称不需要作为css中类的前缀. Just .hello {border:1;也是有效的.

猜你在找的PHP相关文章