Попробуйте
id="content">((?:.|\n)*?)<SCRIPT
Обычное предупреждение не анализировать HTML с регулярным выражением применимо, но вы, кажется, уже знаете это.
В качестве альтернативы:
(?<=id="content">)(?:.|\n)*?(?=<SCRIPT)
Точка не соответствует символам новой строки по умолчанию. Один из способов обойти это - разрешить их явно. Это сработало бы, даже если бы используемый вами вариант регулярного выражения не поддерживал модификатор dotall.
Первое регулярное выражение соответствует вашему подходу, расширенному разрешением \n
. Ваш матч будет в группе 1, вам нужно только обрезать его.
Второе регулярное выражение использует утверждения нулевой ширины (упреждение вперед / назад), чтобы отметить начало и конец совпадения. Совпадение не будет содержать ничего, что вы не хотите, группировка не требуется.