我需要一个regex来改变这一点:
.my-class {
@apply .p-4 .bg-red-500;
}这方面:
.my-class {
@apply p-4 bg-red-500;
}我找到了这个正则表达式,但它不起作用:
(?<=@apply.*)\.有什么想法吗?
发布于 2022-11-17 18:18:40
您的regex将在支持无限宽查找模式的.NET或Python PyPi regex模块或JavaScript ECMAScript 2018+兼容环境中工作。
如果是PCRE/Java/Ruby,您可以使用
((?:\G(?!^)|@apply)[^.\r\n]*)\.并将其替换为对组1的$1反向引用。参见regex演示。我假设您希望在与@apply相同的行上找到点,所以我将\r和\n添加到否定字符类中,如果不是这样的话,删除\r和\n。
详细信息
((?:\G(?!^)|@apply)[^.\r\n]*) -第1组:上一次成功匹配(\G(?!^))或@apply的结束,然后是除点、CR和LF字符以外的零或多个字符。\. -a点发布于 2022-11-18 08:54:20
设法更改以下目录中的所有sass文件:
<?php
foreach(glob('./site/assets/stylesheets/' . sprintf("**/*.%s", 'sass')) as $file) {
$contents = file_get_contents($file);
$regex = '/((?:\G(?!^)|@apply)[^.\r\n]*)\./m';
$subst = '$1';
$result = preg_replace($regex, $subst, $contents);
file_put_contents($file, $result);
echo "written $file";
}https://stackoverflow.com/questions/74479273
复制相似问题