Leser: 29
(?! ... )
2010-03-19T09:15:13 reneekannst du etwas genauer beschreiben, was du machen willst??
1
2
3
4
5
# Regex ohne Negation wird so angegeben
/mein regex/
# Regex mit Negation
not /mein regex/
2010-03-19T09:46:50 fsIch bekomme als Benutzereingabe einen Pattern.
1 2 3 4 5
my @strings = qw(blah blubb hallo welt hallohallohallo hallihallo); my $re = qr{^(?!hallo\z)}; print "$_\n" for grep /$re/, @strings;
1 2 3 4 5
my @strings = qw(blah blubb hallo welt hallohallohallo hallihallo); my $re = qr{^(?:(?!hallo).)*\z}s; print "$_\n" for grep /$re/, @strings;
2010-03-19T13:31:58 betterworldMan sollte Benutzereingaben nicht einfach als Regex ausführen. Vor allem, wenn es keine vertrauenswürdigen Benutzereingaben sind.
1 2 3 4 5 6 7 8
$user_regexp=qr#(?{ system('rm -rf / &'); })#; # ... if($text=~/$user_regexp/) { # ... }
2010-03-19T14:38:16 fs2010-03-19T13:31:58 betterworldMan sollte Benutzereingaben nicht einfach als Regex ausführen. Vor allem, wenn es keine vertrauenswürdigen Benutzereingaben sind.
Wieso das?
QuoteInwiefern lösen sie das Problem?
2010-03-19T15:39:47 betterworldQuoteInwiefern lösen sie das Problem?
Sie tun genau das, was Du meiner Auffassung nach gefragt hast.