wie kann ich in einem String nach den Zeichen [oder] suchen? Wenn ich mit
$at =~ s/[.+/_/g
alles was nach dem [kommt durch _ ersetzen will, dann bekomme ich eine Fehlermeldung, weil ein schließendes] erwartet wird. Mit normalen Buchstaben gehts. z.B. $at =~ s/a.+/_/g ersetzt alles nach dem a durch _. Leider brauch ich aber unbedingt [. Ich hab schon alles mögliche probiert z.B. [[ aber ich bekomms einfach nicht hin. Wer kann mir helfen??
wie kann ich in einem String nach den Zeichen [oder] suchen?
Wenn ich mit
$at =~ s/[.+/_/g
alles was nach dem [ kommt durch _ ersetzen will, dann bekomme
ich eine Fehlermeldung, weil ein schließendes ] erwartet wird.
Die Zeichen „[“ und „]“ haben innerhalb von regulären Ausdrücken
eine spezielle Bedeutung, nämlich „suche eines der in diesen
Klammern aufgeführten Zeichen“ (=Zeichenklasse). Um nach den
eigentlichen Klammern zu suchen, musst Du einen Backslash „“ voranstellen. Damit sorgst Du für das sogenannte Escaping
von Metazeichen
$at =~ s/\[.+/\_/g
ersetzt nun die Zeichenkette innerhalb von $at der Form
„[ gefolgt von mindestens einem beliebigen Zeichen“ mit einem
„_“.
Da die Verwendung von regulären Ausdrücke gerade am Beginn
ziemlich fehlerträchtig ist, solltest Du einen Blick in
die mitgelieferte Perl-Dokumentation werfen:
perldoc perlre - liefert eine Beschreibung von Perl’s
regülären Ausdrücken
perldoc perlop - enthält u.a. Beispielcode zu dem Substitutionsoperator s///