【发布时间】:2011-12-31 21:57:23
【问题描述】:
我正在尝试匹配一些 CSS 属性。但是,我无法预测它们的顺序。
例子:
header p {
color:#f2f3ed;
background-color:#353535;
background-image: url(../images/dots.png);
}
不过,我也应该期待:
header p {
background-image: url(../images/dots.png);
background-color:#353535;
color:#f2f3ed;
}
以及这三个属性的任何其他组合。我们正在构建的 Web 应用程序只允许我访问 preg_match 函数。
有人知道一种方法来匹配所有可能的属性组合吗?我确切地知道这些属性将是什么,我只是不知道它们会按什么顺序排列。
也就是说,我正在尝试找到一个比输入所有可能的组合并用|分隔它更快的解决方案
【问题讨论】:
-
你应该只在这里使用 CSS 解析器而不是正则表达式。
-
从技术上讲,您也可以多次调用
preg_match,为您希望匹配的每个属性一次,但如果这是需要维护或由其他人使用的代码,则解析器是最好的方法. -
我试图为此构建一个正则表达式,但它把我的面条放在前面,中间有很多匹配项。
-
如果 preg_match_all 可用,您也可以使用它来迭代所有行。