[Perl] String-Vergleich ohne Groß/Kleinschreibung

hallo,

ich mache grade meine ersten versuche in perl.
soweit habe ich ein script am laufen.
ich suche mir aber die finder wund nach der möglichkeit in einem string einen teilstring zu suchen ohne daß auf groß/kleinschreibung rücksicht genommen werden soll.

bisher mache ich das mit
if ($Name =~/$Suche/) { }

dabei ist aber ein unterschied zwischen
„Meier“ und „meier“. das will ich umgehen.

wer kann mir helfen ?

Dirk

Hallo Dirk,

möglichkeit in einem string einen
teilstring zu suchen ohne daß auf
groß/kleinschreibung rücksicht genommen
werden soll.

bisher mache ich das mit
if ($Name =~/$Suche/) { }

Dafür gibt es den i-Schalter (case insensitive):

if ($Name =~/$Suche/i) {}

Ein weiterer nützlicher Schalter:
g - erkennt mehrere Treffer pro Zeile

-Andreas.

Dafür gibt es den i-Schalter (case
insensitive):

if ($Name =~/$Suche/i) {}

danke für deine hilfe.
ich habe das gleich mal ausprobiert…
/i unterstützt aber keine deutschen Umlaute.
der vergleich zwischen „ö“ und „Ö“ ist immer noch negativ…

wie kann ich das abstellen ?

Dirk

Hallo Dirk,

/i unterstützt aber keine deutschen
Umlaute.
der vergleich zwischen „ö“ und „Ö“ ist
immer noch negativ…

wie kann ich das abstellen ?

Mit „use locale“ werden länderspezifische
Zeichen erkannt. Dein Betriebbsystem
muß das aber unterstützen (bei Linux kein Problem :wink:. Ein Beispiel:

use locale;
$wort=„Ähm“;
if ($wort =~ /ähm/i){print „Treffer!\n“;}
else {print „KEIN Treffer!\n“;}
print „Aus $wort mach kleines Wort:“,lc($wort),"\n";

if ($wort =~ /\w/i){print „Nur Buchstaben!\n“;}
else {print „Nicht nur Buchstaben\n“;}

Nun probiere das ganze mal ohne „use locale“. Wenn du mehr wissen willst:

perldoc perllocale

-Andreas.