做CSS精简时可能会用到的正则表达式(2)
2)如果指定了二个值,则第三个值和第一个相等,第四个值和第二个相等(X Y = X Y X Y);
3)如果指定了三个值,则第四个值等于第二个值(X Y Z = X Y Z Y)。
当然,在精简时您肯定希望用更短的语法。下面的正则表达式可以使其变短。所有这些情况使用的替换字符串都和前面一样,是“:$1”。
将4个参数替换为2个(X Y X Y变为X Y)
:"s*((0|(?:(?:"d?".?"d(?:p(?:[xct])|(?:[cem])m|%|in|ex))))"s+(0|(?:(?:"d?".?"d(?:p(?:[xct])|(?:[cem])m|%|in|ex)))))"s+"2"s+"3;
(【译注】测试地址:http://regex-lib.net/Regex/Test/?id=e47bbb7741bd438e9fd37cae7a9d4a24)
4个变为3个(X Y Z Y变为X Y Z)或3个变为2个(X Y X变为X Y)
:"s*((?:(?:0|(?:(?:"d?".?"d(?:p(?:[xct])|(?:[cem])m|%|in|ex))))"s+)?(0|(?:(?:"d?".?"d(?:p(?:[xct])|(?:[cem])m|%|in|ex))))"s+(?:0|(?:(?:"d?".?"d(?:p(?:[xct])|(?:[cem])m|%|in|ex)))))"s+"2;
(【译注】测试地址:http://regex-lib.net/Regex/Test/?id=6bddaab88e724f68a5808d352cc556ca)
较长的这个正则表达式只不过是重复了其中一个子模式而已。
基于以上这些正则表达式,我提出了类似的模式,用来处理border-style、outline-style、border-color和outline-color。
border-style/outline-style
替换字符串为“$1-style:$2;”。
相关新闻>>
- 发表评论
-
- 最新评论 更多>>