首页 > Sublime 正则的问题,清除没用的css。

Sublime 正则的问题,清除没用的css。

我想用正则删掉除 background-image 以外的css。

我自己写了一个 \.(.*)\{(.*)(?:background-image:\ url\(\"(.*)\"\))(.*)\} 但是问题是,如果是整行的css 可以替换,如果有换行符就不行来。

不行

.temp {
  height: 789px;
  width: 789px;
  background-image:url("/img/bg.jpg");
  background-color: #fff;
}

可行

.temp { height: 789px; width: 789px; background-image:url("/img/bg.jpg"); background-color: #fff; }

想请教一下大神怎么办,因为内容很多,手动完成基本不靠谱。


Find: ^(.*?\{)(?:[^\{\}])*?(background-image.*?;)(?:[^ ]| )*?\}
Repl: \1\2}

弄了好长时间,想要一次正则解决问题,但是真心能力不够。最后还是用了两次
第一次(把所有selector{含有background-image}的转换为selector{background-image..}):

reg:([^\}\{]*?\{)[^\}\{]*?(background-image[\s\S]*?:[\s\S]*?url\([\s\S]*?\))[\s\S]*?(\})
replace:$1$2$3

第二次(去掉所有不是selector{background-image}的css)

reg:[^\}\{]*?\{(?!background-image)[\s\S]*?\}
replace:

附上我测试的截图:
初始:

第一次完成:

第二次完成:

【热门文章】
【热门文章】