Javascript 如何使用正则表达式将这一块CSS转换为LESS?

Javascript 如何使用正则表达式将这一块CSS转换为LESS?,javascript,css,regex,replace,less,Javascript,Css,Regex,Replace,Less,我正在重构一堆CSS(10000多行),而不是一行一行地手动转换,如下所示: -webkit-transition: .1s linear all; -moz-transition: .1s linear all; transition: .1s linear all; 为此: .transition(.1s linear all); 有没有办法用正则表达式来加速这个过程 谢谢 这实际上取决于数据的变量,但这是一个好的开始: /(?:\s*(?:-(?:webkit|

我正在重构一堆CSS(10000多行),而不是一行一行地手动转换,如下所示:

-webkit-transition: .1s linear all;
   -moz-transition: .1s linear all;
        transition: .1s linear all;
为此:

 .transition(.1s linear all);
有没有办法用正则表达式来加速这个过程


谢谢

这实际上取决于数据的变量,但这是一个好的开始:

/(?:\s*(?:-(?:webkit|moz)-)?transition:\s*\.1s linear all;\n)+/

如果值是可变的,则替换与数据匹配的任何模式。

帮助转换的一个方法是使用CSS解析器读取CSS,然后编写自己的方法以生成更少的代码

我不明白你为什么需要这个。为什么不保留旧的CSS,只用更少的代码编写新的样式表呢

但是无论哪种方式,我都不认为正则表达式是这个任务的最佳选择,因为CSS必须以一种非常特定的方式编写才能工作,而对于超过10000行的CSS来说,这可能不是最好的选择


此外,您还可以使用。不过,它不会执行您所指的转换类型。

我首先要删除所有带前缀的转换(http://refiddle.com/2t4)然后用混合器替换未固定的(http://refiddle.com/2t5).

不确定您使用的编辑器是否支持在正则表达式中查找替换。 (我在EclipseIDE中尝试了以下步骤)

步骤1:找到“-webkit-”并替换为空白
步骤2:找到“-moz-”并替换为空白
步骤3:查找“(转换):(*);”并替换为“$1($2)”


希望这能有所帮助。

实际上,我使用css lint和serve等工具(作为咕噜任务)来发现不一致之处,调试和规范我的css。这就解决了你所说的问题
#!/usr/bin/python
import re

with open('/tmp/test.txt') as f:
    for line in f:
        m = re.match(r'(.*)(transition):\s*(.*);', line)
        if m:
            print(".%s(%s);" % (m.group(2), m.group(3)))