python - 正则表达式匹配 CSS

标签 python css regex

我一直在尝试对 css 文件做一些正则表达式来提取某些属性,但是我在从 { 到第一个匹配时遇到了问题;等等......这是我到目前为止所取得的成就:

示例 CSS:

.pancake{height:200px;taste:delicious;}

我设法编写了这两个小技巧来工作:

这个获取从点到 { 的所有内容:

(^\.[a-z]+)

这个获取 { } 之间的所有内容:

{.+}

我尝试阅读一些正则表达式,但无法理解如何匹配多次出现或匹配直到另一个匹配中的某个字符(子匹配)

最佳答案

正如 Jon 所说,使用正则表达式解析 CSS 文件可能不是一个好主意。 CSS 语法提供了许多您可能不想手动处理的极端情况。我建议你看看tinycss ,一个不错的 CSS 解析库。

你可以这样使用它:

import tinycss as tcss

stylesheet = ".pancake{height:200px;taste:delicious;}"
parser = tcss.make_parser()
parsed = parser.parse_stylesheet(stylesheet)

for rule in parsed.rules:
    print "".join(t.as_css() for t in rule.selector)
    for declaration in rule.declarations:
        print "\t{0}: {1}".format(declaration.name, declaration.value.as_css())

关于python - 正则表达式匹配 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27084584/

相关文章:

javascript - 在正则表达式中包含 ö、ä、ü 等特殊字符

Apache RewriteCond和 friend : full or partial match?中的正则表达式模式

python - 我如何只在 python 脚本中打印整数

python - Django:测试发送的邮件内容

css - CSS 按钮的重叠

javascript - 如何通过 summernote 字段编辑 span 或 div 中的文本

javascript - IE(移动)不显示触摸子元素

javascript - 如何否定代理对集合?

python - 根据列值加入 Pandas 数据框

python - 使用 numpy.where() 或类似方法从矩阵中的行获取特定值