Главная » PHP » Как удалить все однострочные строки комментариев PHP через Regex в любом редакторе
Как удалить все однострочные строки комментариев PHP через Regex в любом редакторе
У меня есть php-файл, открытый в редакторе, например, Geany / Notepad ++, в котором есть как однострочные, так и блочные комментарии.
Теперь, когда блочные комментарии полезны для документации, я хочу удалить только однострочные комментарии, начинающиеся с //~ или же #, Другие комментарии, начинающиеся с // должен остаться, если они не исходная строка из //,
Как я могу сделать это в регулярных выражениях, я попробовал это ниже, но застрял в экранировании от косой черты, а также в том числе #,
Однострочные комментарии могут начинаться с начала строки или после нескольких пробелов (отступ).
^: Начало строки
\s*: Любое количество пробелов
(\/\/|#): Матч // или же # персонажи. | ИЛИ в регулярном выражении.
.*: Сопоставлять любые символы (кроме новой строки) любое количество раз
Обратите внимание, что Комментарии PHP не содержит тильду ~ после //, Даже если ~ присутствует после // так как вышеприведенное регулярное выражение проверяет // и не волнует персонажей после него, комментарий с //~ также будет соответствовать.
У меня есть php-файл, открытый в редакторе, например, Geany / Notepad ++, в котором есть как однострочные, так и блочные комментарии.
Теперь, когда блочные комментарии полезны для документации, я хочу удалить только однострочные комментарии, начинающиеся с
//~
или же#
, Другие комментарии, начинающиеся с//
должен остаться, если они не исходная строка из//
,Как я могу сделать это в регулярных выражениях, я попробовал это ниже, но застрял в экранировании от косой черты, а также в том числе
#
,Кто-нибудь может помочь?
Решение
Проблема с регулярным выражением
^[#][\/]{2}[~].*
является то, что это соответствует строке, начинающейся с#//~
,Регулярное выражение такое же, как
Используйте регулярное выражение
демонстрация
Описание:
Однострочные комментарии могут начинаться с начала строки или после нескольких пробелов (отступ).
^
: Начало строки\s*
: Любое количество пробелов(\/\/|#)
: Матч//
или же#
персонажи.|
ИЛИ в регулярном выражении..*
: Сопоставлять любые символы (кроме новой строки) любое количество разОбратите внимание, что Комментарии PHP не содержит тильду
~
после//
, Даже если~
присутствует после//
так как вышеприведенное регулярное выражение проверяет//
и не волнует персонажей после него, комментарий с//~
также будет соответствовать.Другие решения
Других решений пока нет …