Problem mit dem Ersetzen durch Regulären Ausdruck

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit dem Ersetzen durch Regulären Ausdruck

    Hallo,

    derzeit sehe ich nicht wo das Problem bei meinem Regulären Ausdruck ist.

    Mein Ziel ist es, dass bestimmte Wörter von einem Link umschlungen werden. Daber soll es nicht passieren, wenn die Übereinstimmung in HTML - Tags stattfindet.

    Hier erst einmal mein Beispiel:
    PHP Code:
    $my_string 'der <tabler border="0"><tr><td>der der der</td></tr></table> der|der der' ;
    $sReplace preg_replace'/(\!|\?|\.|\:| |\n|\'|\"|>|;|^)(der)($|\!|\?|\.|\:| |\r|\n|\'|\"|<|\|)/i''$1<a href="123">$2</a>$3'$my_string ) ;
    echo (
    $sReplace) ;

    // Ausgabe
    <a href="123">der</a> <tabler border="0"><tr><td><a href="123">der</ader <a href="123">der</a></td></tr></table> <a href="123">der</a>|der <a href="123">der</a
    Nur sehe ich nicht das Problem warum das beim "|" Zeichen nicht funktioniert oder das Wort von " " (Leer) Zeichen umgeben wird.

    Vielleicht hat ja der ein oder andere von Euch Rat.

    Viele Grüße
    Heinz

  • #2
    Wie meinst du das "Daber soll es nicht passieren, wenn die Übereinstimmung in HTML - Tags stattfindet.", wie sollte deine Ausgabe aussehen?

    Comment


    • #3
      Re: Problem mit dem Ersetzen durch Regulären Ausdruck

      Original geschrieben von Heinzelmännchen
      Nur sehe ich nicht das Problem warum das beim "|" Zeichen nicht funktioniert oder das Wort von " " (Leer) Zeichen umgeben wird.
      durch deine regex steige ich auf die schnelle nicht durch, aber vielleicht hilft es dir ja weiter:

      | müsstest du escapen \|
      leerzeichen kannst du mit \s* matchen

      Comment


      • #4
        Derzeit sieht mein Regulärer Ausdruck mittlerweile so aus:
        Code:
        '/([\!|\?|\.|\:|\s*|\n|\'|\"|>|;|\||^|„])(der)([$|\!|\?|\.|\:|\s*|\r|\n|\'|\"|<|\||“])/i'
        Er funktioniert soweit auch ganz gut. Nur leider wenn "der" ganz am Ende des Strings steht, dann greift dieser Ausdruck nicht. Dabei dachte ich dass das "$" dieses auch mit berücksichtigen soll. Was es aber anscheinend nicht macht.

        Hat jemand von Euch eine Idee?

        Comment


        • #5
          vielleicht

          (...)(der)(...)?

          Comment

          Working...
          X