我试图找到一个正则表达式,它可以让我从CSS文件中提取规则JUST。我不希望任何样式声明,只是规则(选择器)。下面是我的工作示例CSS文件:正则表达式从CSS文件中只提取选择器?
body, p, table, td, th, br, div, span {
/* Some styles here */
}
/* This is a test */
h1 {
/* Some styles here */
}
a:hover {
/* Some styles here */
}
-moz-any(input[type="text"], input[type="radio"]) {
/* Some styles here */
}
在这个例子中我希望我的正则表达式匹配以下项目:身体,P,表,TD,TH,BR,DIV,跨度,H1 ,a:悬停,-moz-any(输入[type =“text”],输入[type =“radio”])
这是我对正则表达式的尝试。虽然它的工作原理,它包括/ *这是一个测试* /评论,它还包括花括号。理想情况下,这些将被省略。
(}{0,})([^}]*)({)
任何帮助,这将不胜感激。提前谢谢了!
我还应该注意,我知道这不是一个很棒的CSS文件。这只是一个测试文件,我想出来测试我的解析。
要使用正则表达式做到这一点是复杂的,你最好使用合适解析器。 – Qtax 2012-03-12 13:40:18
四件事:1)规则和选择器*不是同一件事。你只是在寻找选择器。 2)':-moz-any()'是一个伪类,因此它在它之前需要':'。 3)你在用什么语言来实现正则表达式?如果它是一个JavaScript正则表达式,则存在您可以在相关条款中搜索本网站的现有问题。 4)一旦你使用更复杂的样式表,你可能不会用正则表达式得到很多。 – BoltClock 2012-03-12 13:40:28
螺栓 - 我知道我的术语可能不正确。我绝不是CSS专家。我不知道-moz-任何需要的a:在它之前,哎呀。无论哪种方式,重点仍然是我想抓住这一点。另外,我正在C#中实现这一点。 Qtax - 什么会使RegEx做到这一点很复杂?我的RegEx-Foo真的很糟糕:) – 2012-03-12 13:42:26