Войти

Показать полную графическую версию : как удалить тэг script содержащий несколько строк


ruslaw
28-02-2023, 00:24
web-страница содержит различные script-теги такие что <scipt и </script> могут находится как в пределах одной строки, так и на разных строках. Необходимо удалить сами теги и их содержание.
Для однострочных есть несколько RegEx'ов :
<script.*?<\/script>
<script[^>]*?>.*?</script>
\s?<script[^>]*?>.*?<\/script>\s?
Прошу подсказать вариант охватывающий так же и многострочные скриптовые блоки

Sham
28-02-2023, 06:59
node или cscript? Во обоих случаях вместо точки "." можно указать символьный класс [\S\s], а в node можно добавить флаг s.

DJ Mogarych
28-02-2023, 10:05
Надо считать файл как одно целое, а не массив строк, удалить переносы строк и потом применить regex
<script.*?script>

Например, Powershell

(gc D:\Downloads\file.html -Raw) -replace "`n" -replace "<script.*?script>"

ruslaw
28-02-2023, 22:16
Спасибо!




© OSzone.net 2001-2012