我正在寻找一个允许我匹配CSS样式标记内容的正则表达式。从以下示例中,我希望提取单词:数据
declaration {
data
}
上述情况相当简单,但我也希望避免将声明作为较长声明的一部分出现的匹配,如下所示:
declaration2 declaration {
data
}
关于正则表达式,我相当缺乏经验,但我想出了以下规则:
(^|\n|\})\s*?declaration\s*?\{([^\}]*?)\}
这里的逻辑是我希望匹配一行,一个换行符或一个结束'} '括号,以确保我只匹配声明孤立地提到。不幸的是,这种方法似乎不起作用。
我愿意接受建议。
答案 0 :(得分:0)
我不确定为什么你的表达不起作用。我把它修剪成:
/(?:^|})\s*declaration\s*\{([^}]*)}/
并使用JavaScript中的一些虚假输入对其进行了测试,但它确实有效。
假设您也使用JavaScript,您可以这样获取数据:
var data = /(?:^|})\s*declaration\s*\{([^}]*)}/.exec()[1]
请注意,这只会获取declaration
的第一个出现的数据;为了获得所有这些,你应该把它放在一个循环中。