Problem bei Ersetzen mit Groß-/Kleinschreibung
Charles
- perl
Hi, ich habe folgendes Problem beim Ersetzen:
Es soll ein Suchbegriff hervorgehoben werden (mit <i>...</i>), ohne dass die Groß- bzw. Kleinschreibung verändert wird.
Beispiel:
$Suchbegriff ist "medizin"
$Text: "Dieser Mediziner hat wenig medizinische Kenntnisse."
$Text soll hinterher sein:
"Dieser <i>Medizin</i>er hat wenig <i>medizin</i>ische Kenntnisse."
Wenn ich jetzt so arbeite:
$Text = s/$suchbegriff/<i>$suchbegriff</i>/g;
wird nur das klein geschriebene "medizin"ische mit <i></i> hervorgehoben.
Wenn ich stattdessen /gi setze:
$Text = s/$suchbegriff/<i>$suchbegriff</i>/gi;
werden zwar beide Wort-Vorkommen hervorgehoben, aber zugleich wird das Wort "Mediziner" dann in Kleinschreibung umgewandelt und das Ergebnis ist:
"Dieser <i>medizin</i>er hat wenig <i>medizin</i>ische Kenntnisse."
Wie kann ich das vermeiden? Es soll die Gross-/Kleinschreibung in $Text im Original beibehalten werden, aber es soll trotzdem jeder String "medizin" und auch jeder String "Medizin" hervorgehoben werden.
Ich tüftele jetzt seit 2 Stunden erfolglos herum und bin für Tipps mehr als dankbar.
Charles
Hallo,
~~~perl
$str=~/($suchausdruck)/<i>$1</i>/gi;
(ungetestet)
kannst gerne mal im SELFHTML Kapitel für Perl vorbeischauen.
gruss
--
no strict;
no warnings;
Meine Signatur hat Urlaub.
» kannst gerne mal im SELFHTML Kapitel für Perl vorbeischauen.
gruss
Danke, läuft! (Nach 9 Stunden Arbeit an einem Perl-Script sollte man aufhören und was Schönes machen.)
Hallo,
Danke, läuft! (Nach 9 Stunden Arbeit an einem Perl-Script sollte man aufhören und was Schönes machen.)
was gibts Schöneres als Perl und reguläre Ausdrücke? :)
gruss