如何使用RegEx匹配各个CSS属性

时间:2010-11-24 13:20:39

标签: css regex

我正在尝试扩展缩小的CSS文件(不要问)以使其具有人类可读性。 我已经成功完成了大部分的扩展,但我陷入了一个非常奇怪的案例,我无法弄明白。

我的CSS看起来像这样:

.innerRight {
border:0;color:#000;width:auto;padding-top:0;margin:0;
}
a {
color:#000;text-decoration:underline;font-size:12px;
}
p,small,ul,li {
color:#000;font-size:12px;padding:0;
}

我已尝试(.+):(.+);作为搜索,\t\1: \2;\n作为替换。查找RegEx是有效的,唯一的问题是它匹配整个属性行。我尝试过非贪婪的角色,但我不能把它放在正确的位置。

上面找到的RegEx匹配的是:

0: border:0;color:#000;width:auto;padding-top:0;margin:0;
1: color:#000;text-decoration:underline;font-size:12px;
2: color:#000;font-size:12px;padding:0;

虽然这些是技术上正确的匹配,但我需要它分别匹配border:0;color:#000;等,以便我的替换工作。

2 个答案:

答案 0 :(得分:3)

试试这个 - 使用非贪婪的匹配。这对我有用

(.+?):(.+?);

答案 1 :(得分:0)

忘记结肠。只需用“; \ n”替换所有分号。

例如,在Javascript中,您可以写:

text = text.replace(/;/gm,";\n");

我会进一步完善它以解决领先空间​​问题等问题,但这会将每一种风格规则都放在自己的路线上。