bense: regular expressions

Hallo Forum!

Ich habe jetzt schon lange probiert und gesucht, aber es funktioniert einfach nicht. Ich möchte aus einem String einfach alle font-tags löschen. Egal ob eröffnend oder abschliessend und auch solche, wo size, face, usw. definiert ist. Hab es auf verschiedenste Arten versucht, aber so scheint's mir am besten;

$string=eregi_replace("<[font|/font].+?>","",$string);

Sobald ich dann das ? einsetze, um greedy auszuschalten kommt immer folgende Fehlermeldung:
Warning: eregi_replace(): REG_BADRPT

Weiss jemand was?

Danke!

  1. Holladiewaldfee,

    ganz unabhängig von Deinem Problem:
    Denke daran, daß jemand versuchen könnte deinen regulären Ausrdruck auszutricksen. Achte also auf Sachen wie

    <<font>font ...>

    Dann hast Du nach einfacher Anwendung des Ausdrucks nämlich wieder ein <font ...> drinstehen.

    Der Fehler entsteht übrigens durch die ungültige Zeichenfolg .+?. Wenn ich das richtig interpretiere willst Du sowas wie .*

    Ciao,

    Harry

    --
      Herbst ist Wanderzeit!
      http://harry.ilo.de/projekte/berge/
    1. nochmals hallo,

      ganz unabhängig von Deinem Problem:
      Denke daran, daß jemand versuchen könnte deinen regulären Ausrdruck auszutricksen.

      Das ist kein Problem, es handelt sich um einen internen Bereich. Es geht um einen JS-WYSIWYG-Editor.

      Der Fehler entsteht übrigens durch die ungültige Zeichenfolg .+?. Wenn ich das richtig interpretiere willst Du sowas wie .*

      Das nützt nichts, ich will ja nicht "gierig" ersetzen, also bis zum letzen ">", sondern ich will alle font-tags löschen. Also müsste das "ungreedy" werden, also ".*?" aber dann kommt der selbe Fehler wie oben beschrieben.

      Sonst noch eine Idee?

      1. Holladiewaldfee,

        Das nützt nichts, ich will ja nicht "gierig" ersetzen, also bis zum letzen ">", sondern ich will alle font-tags löschen. Also müsste das "ungreedy" werden, also ".*?" aber dann kommt der selbe Fehler wie oben beschrieben.

        Setze den ganzen Ausdruck auf "ungreedy" (d.h. /ausdruck/U, also ein großes "U" ganz hinten dran) (vgl. auch http://de2.php.net/manual/de/pcre.pattern.modifiers.php)

        Ciao,

        Harry

        --
          Herbst ist Wanderzeit!
          http://harry.ilo.de/projekte/berge/
    1. Ja, php.net kenn ich schon, aber das hilft mir nicht wirklich weiter, ich krieg's trotzdem nicht hin. Naja, vielleicht hat jo hier doch noch einer Erbarmen und postet den richtigen regulären Ausdruck...

      1. Holladiewaldfee,

        Ja, php.net kenn ich schon, aber das hilft mir nicht wirklich weiter, ich krieg's trotzdem nicht hin. Naja, vielleicht hat jo hier doch noch einer Erbarmen und postet den richtigen regulären Ausdruck...

        /</?font.*>/iU

        Ciao,

        Harry

        --
          Herbst ist Wanderzeit!
          http://harry.ilo.de/projekte/berge/