我有一些CSS,我正在寻找创建所有类名和标识符的列表。这就是我所拥有的:
var TheList = new List<string>();
var Test2 = Regex.Matches(TheCSS, ".-?[_a-zA-Z]+[_a-zA-Z0-9-]*(?=[^}]*\\{)");
foreach(Match m in Test2)
{
TheList.Add(m.Value);
}
问题在于存在一些不需要的元素:
body
:hover
select
input
label
[for
input
[type
'radio
我尝试了几种我在网上发现的正则表达式;这一个是最接近的,但还不完美。基本上,它只需要包含以#
和.
开头的元素,以避免body
和[type
,然后不包括:hover
之类的伪选择器
我需要在正则表达式中进行哪些更改才能使其正常工作?
感谢。
答案 0 :(得分:4)
关注the CSS standards,类或ID必须与[_A-Za-z0-9\-]+
匹配。因此,类或ID匹配由#
或.
直接加上前缀的字符串。
确定您需要做的就是确保在发生{
之前跟随}
,以确保您不在规则范围内。
结果正则表达式为:([\.#][_A-Za-z0-9\-]+)[^}]*{
Your sample case。相同的正则表达式应用于Facebook CSS。