Schrift
[thread]8536[/thread]

grep bricht ab (Muster als Variable übergeben): wenn Sonderzeichen enthalten sind :-(



<< >> 3 Einträge, 1 Seite
HeiniHuber
 2006-11-28 23:01
#72045 #72045
User since
2006-11-28
4 Artikel
BenutzerIn
[default_avatar]
Hallo Forum-Community!

Ich übergebe dem grep-Befehl das Suchmuster in einer Variable ($NewFileName), sobald Sonderzeichen wie "[" oder "+" darin enthalten sind bricht die Suche nach dem Muster mit der unten genannten Fehlermeldung ab:

Code: (dl )
@searchElements = grep { /$NewFileName/ } @OldCheckList;


FEHLERMELDUNG:
Nested quantifiers in regex; marked by <-- HERE in m/'/usr/bin/c++ <-- HERE filt'/

Wie kann ich grep dazu bringen alle Sonderzeichen beim Aufruf zu akzeptieren? Könnte mir bitte jemand helfen?
sid burn
 2006-11-29 00:22
#72046 #72046
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Du musst $NewFileName vorher escapen.

Entweder mit quotemeta() oder direkt in der Regex indem du es zwischen \Q und \E schreibst also ungefähr so:

Code: (dl )
m/\Q$NewFileName\E/


In deinem Speziellen Fall wenn danach nichts mehr folgt, könntest du das \E sogar weg lassen.\n\n

<!--EDIT|sid burn|1164752599-->
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
Gast Gast
 2006-11-29 00:43
#72047 #72047
Vielen Dank, läuft super!!!
<< >> 3 Einträge, 1 Seite



View all threads created 2006-11-28 23:01.