Hallo Albert,
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///
Frohes Schaffen!
-Andreas.