做CSS精简时可能会用到的正则表达式
来源:互联网 责任编辑:栏目编辑 发表时间:2013-07-02 04:18 点击:次
注意:本文提到的正则表达式都使用了IgnoreCase=true选项。
我观察了YUI Compressor中用于精简CSS的正则表达式,并给出了一些我认为能有助于这一工作的其他正则表达式。
我所看到的代码已经能够通过简单的字符串替换修剪掉“上-右-下-左”值中不必要的零值。但这是通过三个独立的替换操作完成的。如果能用正则表达式处理这种情况,代码将会变得更简单。
(伪代码)
string.Replace(":0 0 0 0;","0;")
string.Replace(":0 0 0;","0;")
string.Replace(":0 0;","0;")
可以变为:
Regex.Replace(input,":("s*0)("s+0){0,3}"s*;",":0;")
够简单了吧。但我想,怎么能就此停滞不前呢?于是我给出了可以处理所有数值的正则表达式:
:"s*(0|(?:(?:"d*".?"d+(?:p(?:[xct])|(?:[cem])m|%|in|ex))))("s+"1){1,3};
(【译注】测试地址:http://regex-lib.net/Regex/Test/?id=d090db4eaf3b41e2b4e75290ad5fe670)
用于进行替换的字符串很简单:“:$1”。
这一步完成后,下面就是处理各个数值并不全为0的情形。
如果您不大了解CSS,这里简单说一下,此处可能出现4个值:
1)如果只指定一个值,则另外三个值也都隐式地指定为相同的值(X = X X X);
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>