seth_not@home: RegEx mit dynamischen Daten

Beitrag lesen

gudn tach!

$Name = "Name2 (Zusatz2)";
foreach (@Liste1) {
   if ( $_ =~ /(.+),$Name/) {
      $Code = $1;
   }
}

Das Problem hier sind die Klammern in "Name2 (Zusatz2)": Diese werden, dynamisch in die RegEx eingesetzt, leider nicht als Zeichen Klammer verwendet, sonder mit der RegEx-Sonderbedeutung für die Gruppierung von Teilausdrücken.

Dies ist hier völlig unerwünscht. $Name wird selbst dynamisch erzeugt , und ich möchte nicht alle Zeichen mit RegEx Sonderbedeutung erst vorher maskieren müßen (hier etwa \( und \).

das kann perl fuer dich uebernehmen:
http://faq.perl.org/perlfaq6.html#How_can_I_quote_a_va
http://perldoc.perl.org/perlre.html (nach "\Q" suchen)

Gibts da Alternativen, bzw. überhaupt eine andere Lösung für derartigen Suchen in Listen?

grep

prost
seth