Thread regexp negieren (2 answers)
Opened by chopic at 2009-06-27 01:37

Linuxer
 2009-06-27 01:51
#122673 #122673
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Hi,

wäre schön wenn Du demnächst die Code-Tags nutzen würdest:

z.B.:
allgemein fuer Code-Beispiele jeglicher Art
[code]dein code[/code]
oder speziell für Perl Code:
[perl]dein code[/perl]

Code: (dl )
1
2
3
if ( /[^,]/ ) {
print $_;
}


Code (perl): (dl )
1
2
3
if ( ! /,/ ) {
  print $_;
} 


Hier wird Dein Ausdruck wahr, sobald auch nur ein Nicht-Komma vorhanden ist.
Du hast zwar das Komma "negiert", aber nur als Zeichen, also suchst Du nun nach allen "Zeichen, die nicht dem Komma entsprechen". Und die Bedingung passt ja bei Deinen Zeilen.

Du möchtest aber eine Negation des gesamten Regex; also genau dann, wenn ein Komma enthalten ist, soll Deine Bedingung "falsch" als Ergebnis haben.

Negieren kannst Du mit dem '!' (ohne '').

Code (perl): (dl )
1
2
3
if ( ! /,/ ) {
  print $_;
} 

oder

Code (perl): (dl )
1
2
3
if ( $_ !~ /,/ ) {
  print $_;
} 


Lesenswert ist auch die Doku:

perldoc perlretut
perldoc perlrequick
perldoc perlre

http://perldoc.perl.org/perlretut.html
http://perldoc.perl.org/perlrequick.html
http://perldoc.perl.org/perlre.html


So, und nun gute Nacht.
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread regexp negieren