Вы должны использовать это регулярное выражение,
@import\s+"[^"]+";
И удалите его с пустой строкой
Демо
Кроме того, в своем регулярном выражении (@import \".*\";)
избегайте использования (
)
, поскольку вам не нужно бесполезно группировать свое регулярное выражение, когда вы заменяете его пустой строкой. Также избегайте использования .*
, иначе он будет жадно соответствовать всему возможному и может дать вам неожиданные результаты.
Попробуйте этот фрагмент кода PHP,
$minified_css = '@import "path/to/file1";.my-class{font-size:24px;}@import "path/to/file2";';
echo preg_replace('/@import\s+\"[^"]+\";/', '', $minified_css);
печать
.my-class{font-size:24px;}
Я не думаю, что вам нужно использовать глобальный модификатор g
в preg_replace
, как это происходит по умолчанию, и вы можете контролировать номер замены, передав третий параметр. Кроме того, вам не нужно использовать m
многострочный модификатор, так как мы не используем начальный / конечный якоря в нашем шаблоне.
Демонстрационный код PHP