Wurzelzwerg: Stringersetzung

Hallo allerseits,

wie kann ich in Perl möglichst elegant einen Teilstring mit anderen Zeichen umgeben. Es geht dabei um das Hervorheben von Suchbegriffen:

Beispiel: Aus der Zeichenkette

Das ist ein Test.

soll

Das ist ein <b><i><u>Test</u></i></b>.

werden.Am besten noch wahlweise mit und ohne Berücksichtigung von Groß- und Kleinschreibung;)

vielen Dank

  1. Hallo,

    versuchs doch mal mit:

    my $s='Das ist ein Test';
       my $sr='Test';
       $s=~s/($sr)/<b>$1</b>/gi;

    die Flags solltest du dir für Gross- und kleinschreibung noch mal angucken.

    Bert

  2. hi,

    wie kann ich in Perl möglichst elegant einen Teilstring mit anderen Zeichen umgeben. Es geht dabei um das Hervorheben von Suchbegriffen

    Dafür gibt es mehrere Möglichkeiten. Zu klären ist allerdings, woher dieser Substring kommt  -  es sieht fast so aus, als ob du ihn aus irgendeinem Formularfeld liest, und dann hast du es sehr einfach, weil er dann sowieso in einer Variablen steckt.

    Beispiel: Aus der Zeichenkette
    Das ist ein Test.
    soll
    Das ist ein <b><i><u>Test</u></i></b>.
    werden.

    Nicht sehr schön (zur Formatierung solltest du auch bei generierten Ausgaben CSS verwenden), aber macht nix. Schematisch kann es so gehen:

    if ($string == "das ist ein Test"){
      $string_new = "das ist ein <b><i><u>Test</u></i></b>";
      print $string_new;
    }

    bitte, das ist ein Schema, das du natürlich nicht einfach abschreiben kannst.

    Wenns nicht klappt, nimmst du halt RegExpressions. Du kannst aber auch einen substring extrahieren und in eine eigene Variable stecken.

    Grüße aus Berlin

    Christoph S.