basti_p: Problem mit preg_replace

Hallo,

ich möchte in einer HTML-Datei alle Vorkommen von

<script type='text/javascript'>function zX() ... beliebige Zeichen ... </script>

entfernen.

Mein bisheriger regulärer Ausdruck sieht so aus:

"/<script type='text/javascript'>function zX()[.*]</script>/"

Leider meldet PHP: "Empty regular expression" - bitte helft mir auf die Sprünge.

Vielen Dank und Grüße Basti

  1. Hallo,

    Mein bisheriger regulärer Ausdruck sieht so aus:
    "/<script type='text/javascript'>function zX()[.*]</script>/"

    Leider meldet PHP: "Empty regular expression" - bitte helft mir auf die Sprünge.

    Runde Klammern dienen dem Einfangen. Du willst offensichtlich *nichts* einfangen, was Dir PHP meldet. Eckige Klammern sind für Zeichenklassen da, innerhalb von Zeichenklassen haben "." und "*" keine besondere Bedeutung und stehen für sich selbst.

    Siehe PHP-Handbuch, Meta-Zeichen in PCRE.

    Maskiere Deine runden Klammern, ersetze die eckigen durch runde Klammern - ja und dann sorge noch dafür, dass Dein Ausdruck genügsam wird, sonst findet er möglicherweise mehr, als Du willst.

    Es ist bei Deinem Ausdruck eine gute Idee, ein anderes Delimiter-Zeichen als den Slash zu verwenden.

    Freundliche Grüße

    Vinzenz

    1. Hallo Vinzenz,

      vielen Dank für die hilfreichen Hinweise! Jetzt funktioniert es:

      "#<script type='text/javascript'>function zX().*</script>#U"

      Grüße Basti