Rita: Regulärere Ausdruck

Hallo,

ich verwende folgendes um ein Wort in einem String zu markieren:

eregi_replace($search_string,"<b>".$search_string."</b>",$string);

Dabei wird dann jedes Wort im String, was dem Such-String entspricht fett markiert. Gefunden werden soll jedes Wort - egal ob groß oder kleingeschrieben. Allerdings soll dann bei der Markierung das gefundene Wort so geschrieben werden, wie es im Original ist und nicht so, wie es im Suchstring geschrieben wurde.

Geht das nicht irgendwie mit einem Reg-Ausdruck, so dass ich den gefundenen String markieren kann ?

Danke für Eure liebe Hilfe ...

Die Rita

  1. Hi Rita,

    eregi_replace($search_string,"<b>".$search_string."</b>",$string);

    hier findest Du einige Script-Teile, welche das tun, was Du willst.
    http://de.php.net/manual/de/function.eregi-replace.php
    z.B. 3. Kommentar

    Ansonsten gibt es einen Modus bei älteren PHP-Versionen bzw. eine Callbackfunktion bei neueren PHP-Versionen, wo man wie der name schon sagt im Aufruf der RegEx eine Funktion zwischenschalten kann, die Dinge ausführt.
    http://de.php.net/manual/de/function.preg-replace-callback.php
    und
    http://de.php.net/manual/de/reference.pcre.pattern.modifiers.php der modifier e (für ältere PHP-Versionen, die die callback-Funktion noch nicht kennen)

    ciao
    romy

  2. hi,

    ich würde preg_replace vorschlagen.

    echo preg_replace("/($search_string)/i",'<b>$1</b>',$string)."<br>";

    Ich suche nach Vorkommen von $search_string und weil diese in Klammern () stehen, werden diese Vorkommen in $1 gespeichert. Im zweiten string kann ich dann auf $1 zugreifen. das i am ende des ersten parameters sorgt dafür, dass nicht auf groß/kleinschreibung geachtet wird. Genauer wird das auf diesen seiten erklärt:

    http://de.php.net/manual/de/ref.pcre.php
    http://de.php.net/manual/de/function.preg-replace.php