Regex negiert (not in)
WernerK
- javascript
0 Gunnar Bittersmann0 WernerK
0 Jonny 50 WernerK
Hallo
Eine Tabelle hat Spalten mit Zahlen 10, 30, 40, 0, 100
ich suche nach einer Regex die bestimmte Zeichen ausklammert.
Also wählt man beispielweise 10 aus, soll alles angezeigt werden außer die 10
Ich habe mal im Self Wiki nachgeschaut:
http://wiki.selfhtml.org/wiki/JavaScript/Objekte/RegExp
Ich dachte dies könnte der Schlüssel sein:
[^123] findet Zeichen, die nicht 1, 2 oder 3 sind.
Also hatte ich es so versucht.
'[^10]$'
dann wurde aber gar nichts mehr angezeigt.
Ich vermute weil die 10 nicht als "ganzes" gesehen wird, sondern die 1 und 0 separat und die 0 kommt ja überall vor?
So würde eine positive Filterung funktionieren:
'^10$'
Hier wird jetzt nur noch die 10 angezeigt.
Also bräuchte ich dieses "negiert"
Nur wie macht man das?
vielen Dank
Gruss
Werner
@@WernerK:
nuqneH
Eine Tabelle hat Spalten mit Zahlen 10, 30, 40, 0, 100
Zahlen.
ich suche nach einer Regex die bestimmte Zeichen ausklammert.
Zeichen.
Reguläre Ausdrücke verarbeiten Zeichen, keine Zahlen. Was immer dein Problem ist, reguläre Ausdrücke sind eher nicht die Lösung.
Also bräuchte ich dieses "negiert"
Nur wie macht man das?
Negation in deiner Programmlogik.
Qapla'
Hallo
Reguläre Ausdrücke verarbeiten Zeichen, keine Zahlen. Was immer dein Problem ist, reguläre Ausdrücke sind eher nicht die Lösung.
Warum nicht. Das ist ja nur ein Beispiel. Es geht sowohl um Spalten mit reinen Zahlen als auch um Buchstaben (Zeichen)
Gruss
Werner
Hallo Werner,
Also hatte ich es so versucht.
'[^10]$'
Hier definierst du eine sog. negatierte Zeichenklasse. [^10]
passt auf jedes Zeichen ausser 1 und 0.
Wie ich es verstehe möchtest du aber einen negativen Lookahead verwenden: ^(?!10$)\d+$
oder z.b. ^(?!(?:10|11)$)\d+$
für mehrere auszuschließende Zahlen. Auf regex101.com kann man gut testen. Rechts siehst du jeweils eine ausführliche Erklärung.
Viel Erfolg,
Robert
Hallo Robert,
Wie ich es verstehe möchtest du aber einen negativen Lookahead verwenden:
^(?!10$)\d+$
oder z.b.^(?!(?:10|11)$)\d+$
für mehrere auszuschließende Zahlen. Auf regex101.com kann man gut testen. Rechts siehst du jeweils eine ausführliche Erklärung.
ja ich denke auch. Zwar kapier ich das noch nicht so mit dem negativen Lookahead aber ich hatte über Google auch so etwas ähnliches gefunden. Das funktionierte auch fast wie gewünscht. Nur wurde auch die 100 ausgeklammert bei Regex Suche mit 10. Ich werde am Montag gleich deine Version mal ausprobieren.
vielen Dank
Gruss
werner