用于匹配CSS样式规则的正则表达式

时间:2011-11-30 22:29:09

标签: regex

我正在寻找一个允许我匹配CSS样式标记内容的正则表达式。从以下示例中,我希望提取单词:数据

declaration {
    data
}

上述情况相当简单,但我也希望避免将声明作为较长声明的一部分出现的匹配,如下所示:

declaration2 declaration {
    data
}

关于正则表达式,我相当缺乏经验,但我想出了以下规则:

(^|\n|\})\s*?declaration\s*?\{([^\}]*?)\}

这里的逻辑是我希望匹配一行,一个换行符或一个结束'} '括号,以确保我只匹配声明孤立地提到。不幸的是,这种方法似乎不起作用。

我愿意接受建议。

1 个答案:

答案 0 :(得分:0)

我不确定为什么你的表达不起作用。我把它修剪成:

/(?:^|})\s*declaration\s*\{([^}]*)}/

并使用JavaScript中的一些虚假输入对其进行了测试,但它确实有效。

假设您也使用JavaScript,您可以这样获取数据:

var data = /(?:^|})\s*declaration\s*\{([^}]*)}/.exec()[1]

请注意,这只会获取declaration第一个出现的数据;为了获得所有这些,你应该把它放在一个循环中。