Используйте неохотный квантификатор и флаг dot-all, чтобы напрямую сопоставить весь тег script
:
(?s)<script\b.*?</script>
Используйте его следующим образом:
str = str.replaceAll("(?s)<script\\b.*?</script>", "");
The *Флаг 1008 * также приводит к совпадению точки с новой строкой.
Установка \b
, что означает «граница слова», после script
означает, что он не будет случайно совпадать с более длинным именем тега, которое начинается с script
, например, <scriptX>
.
.*?
соответствует нескольким символам, насколько это возможно, поэтому оно будет соответствовать только до следующего экземпляра </script>
(в случае, еслитам как несколько скриптовых тегов).