Чтобы соответствовать телу тега, вы можете попробовать что-то вроде
<script[^>]*?>(.*?)</script>
, который вы хотите сопоставить без учета регистра. Работает, предполагая, что в текущем теле скрипта нет "", а в атрибутах тега нет ">". Вы можете добавить пробелы в регулярное выражение, чтобы сделать его более устойчивым. Обратите внимание на использование. *? чтобы убедиться, что сканирование останавливается на первом закрывающем теге.
Чтобы добавить атрибут src, вы можете попробовать
<script[^>]*?(src="([^"]*)")?[^>]*?>(.*?)</script>
и используйте второе совпадение, чтобы получить 'src', и третье, чтобы получить тело. Опять же, возможно, вы захотите добавить пробельные символы.
Но было бы лучше всего запустить его через надлежащий синтаксический анализатор HTML / XML / SGML, поскольку регулярные выражения в некоторых случаях могут взорваться.