Я хочу создать сценарий, который удалит все комментарии из файла. Мой текущий регулярное выражение это:preg_replace() все события
$new = preg_replace_all("/(\/\*.*\*\/)/s", "", $contents);
, который соответствует (и удаляет) ничего между /*
и */
Проблема становится очевидной, когда содержимое файла является то, как это, например:
/* First comment */
first_function();
/* Second comment */
second_function();
Вместо того, чтобы удалить первый и второй комментарии и оставить оба вызова функций, мое регулярное выражение соответствует всем значениям от первого /*
до последних */
и th мы полностью удаляем звонок first_function()
.
Я полагаю, решение было бы заменить мой .*
(который соответствует любому) с чем-то, что говорят, что матч ничего , пока не дойдете до */
. Но я не знаю, как это написать. Я ожидал, что это будет что-то вроде [^\*\/]
, но оно не работает должным образом.
Какое правильное регулярное выражение?
Нежелательный символ соответствия ... Мне нравится его имя: P Спасибо. – 3Nex