- PVSM.RU - https://www.pvsm.ru -

Об удалении квотированных строк из текста JavaScript

Как часть программы анализа исходных кодов было необходимо вырезать из JavaScript все строковые литералы. Сначала на PHP был реализован state based парсер, но это было медленно и уныло. А сделать быстро получилось с помощью регулярных выражений.

Источником вдохновения послужил пост [1] на stackoverflow. В результате получилось следующее решение:
return preg_replace('/(
"[^"\\]*(?:\\.[^"\\]*)*" # match double quoted string
|
'[^'\\]*(?:\\.[^'\\]*)*' # match single quoted string
|
(?s:\/\*.*?\*\/) # multiline comments
|
\/\/.*?\n # singleline comments
|
string.replace\(\/[^\/\\]*(?:\\.[^\/\\]*)*\/ # an JS regexp
)/x', '', $str);

И это во много раз быстрее анализатора, 50-ть строчек которого канули в Лету.

Автор: qMBQx8GH


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/php-2/8277

Ссылки в тексте:

[1] пост: http://stackoverflow.com/questions/5695240/php-regex-to-ignore-escaped-quotes-within-quotes