我想用正则删掉除 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:
附上我测试的截图:
初始:
第一次完成:
第二次完成: