我正在重构一堆CSS(10,000多行),而不是逐行手动转换:
-webkit-transition: .1s linear all;
-moz-transition: .1s linear all;
transition: .1s linear all;
进入这个:
.transition(.1s linear all);
有没有办法加速正则表达式?
谢谢!
答案 0 :(得分:0)
这实际上取决于数据的变量,但这是一个好的开始:
/(?:\s*(?:-(?:webkit|moz)-)?transition:\s*\.1s linear all;\n)+/
如果值是可变的,请替换与您的数据匹配的任何模式。
答案 1 :(得分:0)
您可以做的一件事就是使用CSS解析器来读取CSS,然后编写自己的方法来发出LESS代码。 Here is one such parser for Java
我不明白为什么你会需要这个。你为什么不保留旧的CSS,只在LESS中编写新的样式表?
但无论哪种方式,我都不认为正则表达式是这项任务的最佳选择,因为CSS必须以非常具体的方式编写才能工作,这可能不是超过10000行的情况。 CSS。
此外,您可以使用this converter。它不会进行你所指的转换类型。
答案 2 :(得分:0)
我首先删除所有带前缀的(http://refiddle.com/2t4),然后用mixin替换未加前缀的(http://refiddle.com/2t5)。
答案 3 :(得分:0)
不确定您使用的编辑器是否支持regex中的find-replace。 (我在Eclipse IDE中尝试了以下步骤)
步骤1:找到“。 -webkit - 。”并替换为空白
第2步:找到“。 -moz - 。”并替换为空白
第3步:找到“(转换):(。*);”并替换为“。$ 1($ 2);”
希望这有帮助。
答案 4 :(得分:0)
#!/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)))