Я пытаюсь сделать регулярное выражение, чтобы просмотреть уже существующую базу кода, которая, кажется, злоупотребляет чертой из символа подавления ошибки PHP (@
) как для ссылок переменных, так и для вызовов функций , В результате я хочу найти всю базу кода, чтобы создать список всех способов использования. Проблема в том, что большая часть кода также включает perldoc, и я не уверен, как исключить очевидные комментарии.PHP Regex исключить комментарии, обнаруживая ошибку подавления
Большая часть perldoc, по-видимому, основана на минимуме пробелов-пробелов-астерикс. например .:
/**
* @param int $somvar
*/
поэтому он может быть согласован с чем-то вроде /^\s*\*\s+/
достаточно последовательно.
Регулярное выражение, я использую, чтобы найти обычаи подавления ошибки символа (но хватает perldoc также) является:
/(@[\$\w][\w\d]*)/
Результаты Это удовлетворительны сохранить для сбора всех perldoc.
Я попытался взглянуть на некоторые из примеров негативного внешнего вида, но, похоже, не избегаю этих комментариев perldoc тем, что я еще не пробовал. Одним из примеров тот, который не работает следующим образом:
(?!\s*[\*\/])(@[\$\w][\w\d]*)
любая помощь
, к сожалению, некоторые из них на самом деле используется вещами - например, доктрина или другие интерфейсы, которые ставят свои конфиги в блоках комментариев с @ символами – Scott
не будет? Scott
Кстати, я пробовал как негативные взгляды, так и отрицательные lookbehinds, но они не пропустили цитаты, или они закончили слишком много пропускать. Часть проблемы заключается в том, что мне особенно нужно искать пробелы-звездочки-пробелы в начале строки. Комментарии после символа не имеют значения, и я не хочу пропускать строки с операндами умножения. – Scott