roman_schröder Geschrieben 2. Juli 2008 Geschrieben 2. Juli 2008 (bearbeitet) Hallo Leute, ich habe ein kleines Problemchen, dessen Lösung ich nicht finden kann... if ($line =~ m/^$input/){...} das ist ok, wenn $input mit Buchstaben oder Digits anfängt. ABER: wenn mein $input ist "+" oder "(ABC" dann kracht es. Denn Perl kann nicht m/^+ bzw. m/^( matchen: es muss lediglich m/^\+ oder m/^\( das kann ich nicht machen, da mein input immer verschieden ist => erste Zeichen kann auch ein Buchstaben sein. Ich habe im Netz gelesen, dass es spezielle Operatoren für Matching gibt, mit deren Hilfe, dieses Problem zu lösen ist. \Q\E aber was ist das und wie kann ich es nutzen? Kann mir bitte jemand bei diesem Problem helfen? Danke Bearbeitet 2. Juli 2008 von roman_schröder Zitieren
bigvic Geschrieben 3. Juli 2008 Geschrieben 3. Juli 2008 Hi, perlfaq6 - perldoc.perl.org ciao, vic Zitieren
Monty82 Geschrieben 3. Juli 2008 Geschrieben 3. Juli 2008 Ich habe im Netz gelesen, dass es spezielle Operatoren für Matching gibt, mit deren Hilfe, dieses Problem zu lösen ist. \Q\E aber was ist das und wie kann ich es nutzen? Kann mir bitte jemand bei diesem Problem helfen? if ($line =~ m/^\Q$input\E/){...} Das \Q sorgt dafür, das alle nachfolgenden Zeichen, die in Perl bzw. im Regulären Ausdruck eine besondere Rolle spielen könnten, bis zum eventuellen Vorkommen von \E mit \ escaped werden. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.