Veröffentlicht 2. Juli 200817 j 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 200817 j von roman_schröder
3. Juli 200817 j 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.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.