gleiche Buchstaben aber Groß-KLeinschriebung ignorieren
Stefan Priebe
- perl
0 Rolf0 Calocybe0 Rolf0 Jörk Behrends0 Rolf
0 Frank Schönmann
0 Frank Schönmann
Hallo!
Ich möchte folgendes machen:
z. B.
$text = "a";
$text2 = "A";
if ($text ??? $text2) {print "Gleich";} else {print "nicht gleich";}
hieber soll gleich rauskommen
aber wenn $text = "a"; und $text2 = "Auto"; soll nicht gleich rauskommen.
es sollen also schon die sleben Buchstaben sein, doch die Schriebung soll ignoriert werden...
Stefan
Hallo!
Ich möchte folgendes machen:
z. B.
$text = "a";
$text2 = "A";
if ($text ??? $text2) {print "Gleich";} else {print "nicht gleich";}hieber soll gleich rauskommen
aber wenn $text = "a"; und $text2 = "Auto"; soll nicht gleich rauskommen.
es sollen also schon die sleben Buchstaben sein, doch die Schriebung soll ignoriert werden...
Stefan
Hallo Stefan,
probier mal das folg. Script:
---schnipp---
$text = "a";
$text2 = "Auto";
if( $text =~ /$text2/i){
print "Gleich";
}
else{
print "Nicht gleich!";
}
---damit kommt genau das raus was Du brauchst...---
Literatur: http://www.phy.uni-bayreuth.de/~btpa25/perl/perl_inhalt.html auch zum Download!
Viele Grüße, Rolf
Hi!
$text = "a";
$text2 = "Auto";if( $text =~ /$text2/i){
»» print "Gleich";
}
Vorsicht! Wenn text2 = "a" ist und text = "Auto" wuerde hier auch "Gleich" rauskommen. Deshalb muesste es heissen
if ($text =~ /^$text2$/i) { ...
Allerdings finde ich Franks Methode sowieso besser.
Calocybe
Hi!
$text = "a";
$text2 = "Auto";if( $text =~ /$text2/i){
»» print "Gleich";
}Vorsicht! Wenn text2 = "a" ist und text = "Auto" wuerde hier auch "Gleich" rauskommen. Deshalb muesste es heissen
if ($text =~ /^$text2$/i) { ...Allerdings finde ich Franks Methode sowieso besser.
Calocybe
Hallo Calocybe, hallo Mitstreiter,
stimmt Franks Methode ist auf jeden Fall besser - finde ich auch.
Jedoch das Script was ich postete, hab ich getestet: es erfüllt seinen Zweck...
Also herzliche Grüße an Euch Beide mal ganz speziell hier im Forum, Rolf
PS: Und Grüße an Stefan, den Hilfesuchenden, hat er sein Problem lösen können???
Hallo Ihr!
$text = "a";
$text2 = "Auto";if( $text =~ /$text2/i){
»» print "Gleich";
}Vorsicht! Wenn text2 = "a" ist und text = "Auto" wuerde hier auch "Gleich" rauskommen. Deshalb muesste es heissen
if ($text =~ /^$text2$/i) { ...Jedoch das Script was ich postete, hab ich getestet: es erfüllt seinen Zweck...
Hast Du es denn auch so getestet?
$text = "aAAab=C";
$text2 = "a+B=c";
if( $text =~ /^$text2$/i){
print "Gleich";
}
Mit den regulären Ausdrücken muß man doch recht vorsichtig umgehen, um NUR und GENAU das zu erreichen, was man eigentlich möchte ...
if( $text =~ /^\Q$text2\E$/i){ ...
Gruß,
Jörk
Hallo Jörk, liebe Forumer,
---zum Testen---
$var = @ARGV[0]; # 0 oder 1 eingeben
if ($var){
$text = "a";
$text2 = "Auto";
}
else{
$text = "aAAab=C";
$text2 = "a+B=c";
}
print "---mein Vorschlag----\n";
if( $text =~ /$text2/i){print "Gleich\n";} else{print "Nicht gleich!\n";}
print "---calocybes Vorschlag---\n";
if( $text =~ /^$text2$/i){ print "Gleich\n";}else{print "Nicht gleich!\n";}
print "-----joerks Vorschlag-----\n";
if( $text =~ /^\Q$text2\E$/i){ print "Gleich\n";} else{print "nicht gleich\n";}
print "---Franks Vorschlag----\n ";
if (lc $text eq lc $text2) { print "gleich"; } else{print "Nicht gleich!\n";}
---ende---
Also Deine (Jörk) und Franks Lösung sind OK.
Meine Hausaufgaben werd ich machen :-)
Literatur:
http://www.phy.uni-bayreuth.de/~btpa25/perl/perl_inhalt.html
Herzliche Grüße an Alle und ein schönes Wochenende, Rolf
hi!
if( $text =~ /$text2/i){
Na, man muss ja nicht gleich mit Kanonen auf Spatzen schießen ;)) Außerdem dauert die Überprüfung mit regulären Ausdrücken im Gegensatz zu meiner Methode fast 1,5 mal so lange.
bye, Frank!
hi!
Ich möchte folgendes machen:
z. B.
$text = "a";
$text2 = "A";
if ($text ??? $text2) {print "Gleich";} else {print "nicht gleich";}
Die einfachste Lösung:
if (lc $text eq lc $text2) { print "gleich"; }
bye, Frank!