我正在尝试在 css 文件中获取每个单独的关键帧声明,然后复制它,但插入 moz/ms/o 来处理每个带有关键帧的浏览器。
我正在使用这个正则表达式:
(@)(-webkit-)([\s\S]*)(\}\R\}\R@)
尝试捕获每个集合(请参阅我的Rubular中的完整示例)
我正在尝试在 css 文件中获取每个单独的关键帧声明,然后复制它,但插入 moz/ms/o 来处理每个带有关键帧的浏览器。
我正在使用这个正则表达式:
(@)(-webkit-)([\s\S]*)(\}\R\}\R@)
尝试捕获每个集合(请参阅我的Rubular中的完整示例)
尝试这个:
/(@)(-webkit-)(.*?\R\})/m
m
修饰符使其成为多行正则表达式,因此匹配.
换行符。我在最后删除了匹配@
项,因为它无法匹配文件中的最后一个块。并且*?
使匹配不贪心,因此一次只匹配一个块。
你得到的最接近的是...
(@-webkit-[^}]*}\s*to\s*{[^}]*}\s*})
...它可以很好地处理 CSS 文件中的异常/损坏的缩进。这是它的工作原理:
(
启动捕获组...
@-webkit-
……就这句话。
[^}]*
}
继续,直到您看到一个 '}' 字符。
\s*
to
\s*
{
接下来是短语'to',然后是'{'......
[^}]*
}
...继续直到下一个 '}' 字符。
\s*
}
最后的 '}' 字符,可能前面有空格。
)
停止捕捉。
由于正则表达式不理解嵌套,因此可能存在误报的情况。