Monty: Regulärer ausdruck über mehrere Zeilen...

Beitrag lesen

Ich versuche schon seit längerem einen regulären ausdruck zu verfassen der javascript teile in einem html codestück "markiert" (damit sie später ohne großen aufwand gelöscht werden können)

Codestück:

<td>
<script type="text/javascript"><!--
google_ad_client = "xxx";
//xxx
google_ad_slot = "xxx";
google_ad_width = xxx;
google_ad_height = xxx;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</td>

Regulärer Ausdruck:

<script(.*)> soll ersetzt werden durch <delete-x>
und
</script> soll ersetzt werden durch </deltete-x>

wobei x durch eine laufende nummer ersetzt wird...

mein problem dabei ist das nicht alle teile erkannt werden, d.h. wenn ich den code laufen lasse, kommt nach der ersetzung sowas raus:

<td>
<delete-1><!--
google_ad_client = "xxx";
//xxx
google_ad_slot = "xxx";
google_ad_width = xxx;
google_ad_height = xxx;
//--></delete-1>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</delete-2>
</td>

d.h. das 2. <script... wird ausgelassen, wenn ich den zeilenumbruch entferne, so dass der öffnende script-tag in nur einer zeile ist, dann geht es... Sollten reguläre ausdrücke nicht über mehrere Zeilen gehen?

das hierbei für das 2. </script> tag bereits eine id vergeben wurde (obwohl es keinen öffnenden tag gibt) ist kein problem! allerdings existiert in diesem code eben der öffnende tag, wird aber nicht erkannt!

ich hab es auch schon mit <script(.*)(\n*)(.*)> probiert - das funktioniert jedoch genau so wenig...

Bin mittlerweile schon recht Ratlos, hat vllt. wer eine Idee wieso es nicht funktioniert, bzw. wie man es dazu bringen könnte dass es funktioniert?

P.S. das eretzten erfolgt mit einem simplen replaceFirst in Java, aber auch zahlreiche online regex tester (php, perl, javascript) haben das selbe verhalten