Skip to main content
 首页 » 编程设计

c#之用于提取 CSS 类名和 ID 的正则表达式

2024年02月13日28lonelyxmas

我有一些 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

这样的伪选择器

我需要在正则表达式中更改什么才能使其正常工作?

谢谢。

请您参考如下方法:

正在关注 the CSS standards ,类或 ID 必须匹配 [_A-Za-z0-9\-]+。因此,类或 ID 匹配直接以 # 或 . 为前缀的字符串。

确定之后,您需要做的就是确保在 } 出现之前紧跟 {,以确保您在规则之外。

生成的正则表达式将是:([\.#][_A-Za-z0-9\-]+)[^}]*{

Your sample case .相同的正则表达式应用于 Facebook CSS .