我正在尝试编写一个匹配有效的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*\{