Regulären Ausdruck negieren

Status
Nicht offen für weitere Antworten.
M

Michael...

Gast
Hallo,

ich bin auf der Suche nach Möglichkeiten reguläre Ausdrücke zu negieren.
Momentan probiere ich mit look-around assertions und habe hierzu zwei Fragen.
Der Ausdruck, der z.B. negiert werden soll ist z.B. te.*st (wird mehr oder weniger vom Benutzer so eingeben)

Frage 1: Mein momentaner Stand sieht so aus (?!te).*|.*(?<!st), aber dazu müsste ich die Benutzereingabe parsen. Kann man das vereinfachen oder vielleicht ganz anders schreiben - ohne zu parsen?

Frage 2: Warum mag Java bei der look behind assertion .* innerhalb und am Ende des Suchausdrucks nicht?
(?<!(.*test)) geht
(?<!(te.*st)) geht nicht
(?<!(te.{0, 10000}st)) geht, ist aber nicht astrein
 

Kim Stebel

Bekanntes Mitglied
darf man fragen was du damit eigentlich machen willst? der ansatz scheint mir schon sehr umständlich
 

Ark

Top Contributor
Kann man nicht einfach den ursprünglichen Ausdruck nehmen und im Falle, dass die Zeichenkette passt, gerade das Gegenteil tun?

Ark
 
M

Michael...

Gast
Im wesentlichen will ich damit über Datensätze filtern, ähnlich dem benutzerdefinierten Filter in Excel und Co. Da man in dem Filter mehrere "positive" und "negative" Ausdrücke miteinander komibieren kann, bin ich eben auf der Suche nach einfachen Möglichkeiten reguläre Ausdrücke zu negieren. Bisher hatte ich diese Kombinationsmöglichkeit nicht und habe bei negativen Ausdrücken mittels des positiven gefiltert und dann eben das "Gegenteil getan". Ich habe mir auch schon überlegt die einzelnen Ausrücke nacheinander auf die Datensätze anzuwenden, allerdings würde ich gerne nur einmal ein gesamten Filterkriterium übergeben.
 

Kim Stebel

Bekanntes Mitglied
das bestätigt meine vermutung: unnötig umständlich.
mir ist nicht mal klar ob reguläre ausdrücke, wie sie in java verwendet werden (also mit backtracking etc), unter negation geschlossen sind.
 

Ariol

Top Contributor
Keine Ahnung obs dir was bringt, aber...

Code:
static boolean test(String s)
	{
		return !s.matches("te.*st");
	}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Regulären Ausdruck in normalen Java-Code umwandeln Allgemeine Java-Themen 12
A Bestimmte Sonderzeichen im Regulären Ausdruck Allgemeine Java-Themen 2
O Text mit Wildcard gegen regulären Ausdruck prüfen Allgemeine Java-Themen 3
F Problem mit regulären Ausdruck in Zusammenhang mit HTML Allgemeine Java-Themen 8
A Regulären Ausdruck für Funktionsnamen Allgemeine Java-Themen 4
X problem mit regulären ausdruck Allgemeine Java-Themen 3
M backreference im regulären ausdruck Allgemeine Java-Themen 9
J Umlaute in regulären Ausdrücken Allgemeine Java-Themen 3
Daniel_L Frage zu replaceAll und regulären Ausdrücken Allgemeine Java-Themen 15
F Bug bei regulären Ausdrücken? Allgemeine Java-Themen 5
O regulärer Ausdruck zum durchsuchen eines Strings verwenden Allgemeine Java-Themen 2
N Regulärer Ausdruck funktioniert nicht Allgemeine Java-Themen 6
G JavaFX var Ausdruck Allgemeine Java-Themen 1
S Hex Ausdruck kürzen Allgemeine Java-Themen 34
LimDul Hä? Lambda-Ausdruck geht, Methoden-Referenz nicht Allgemeine Java-Themen 8
L Erste Schritte Ausdruck schöner schreiben? Allgemeine Java-Themen 8
J Frage zu regulärem Ausdruck Allgemeine Java-Themen 2
H Reg Exp Ausdruck erweitern Allgemeine Java-Themen 2
W Regulärer Ausdruck für 0 oder mehr Blanks Allgemeine Java-Themen 8
M Regulärer Ausdruck Allgemeine Java-Themen 3
R Regulärer Ausdruck Allgemeine Java-Themen 5
G Regulärer Ausdruck für 2 Wörter Allgemeine Java-Themen 3
P JFormattedTextField für durch Semikolon getrennte Integer-Werte gesucht / Regulärer Ausdruck Allgemeine Java-Themen 3
B Problem mit Regulärem Ausdruck Allgemeine Java-Themen 4
J RegEx Ausdruck Allgemeine Java-Themen 2
G RegEx- Ausdruck Allgemeine Java-Themen 4
L String Replace mit Regulärem Ausdruck Allgemeine Java-Themen 2
H Problem mit der Klasse Pattern - Regulärer Ausdruck Allgemeine Java-Themen 2
S Regulärer Ausdruck tut überhaupt nichts Allgemeine Java-Themen 2
M Regulärer Ausdruck Allgemeine Java-Themen 6
T Ausdruck mit pdfBox macht Probleme Allgemeine Java-Themen 2
M Ausgabe in Datei zum Ausdruck Allgemeine Java-Themen 2
Iron Monkey Regulärer Ausdruck Allgemeine Java-Themen 2
T Regulärer Ausdruck Allgemeine Java-Themen 6
S Regulärer Ausdruck für HTML-Tag Allgemeine Java-Themen 18
P [Regulärer Ausdruck] Auf Gruppe mit Quantifier separat zugreifen? Allgemeine Java-Themen 2
J Regulärer Ausdruck - Der Punkt und der Zeilenumbruch Allgemeine Java-Themen 6
X String zerlegen mittels regulärem Ausdruck Allgemeine Java-Themen 31
M Wertepaar in relulärem Ausdruck Allgemeine Java-Themen 15
Iron Monkey Regulärer Ausdruck Allgemeine Java-Themen 6
A Regulärer Ausdruck für die Uhrzeit Allgemeine Java-Themen 3
G Regulärer Ausdruck Allgemeine Java-Themen 4
G Frage zu Regulärem Ausdruck Allgemeine Java-Themen 2
S regex-Pattern Ausdruck negieren Allgemeine Java-Themen 2
L Passwort mit Regulärem Ausdruck prüfen Allgemeine Java-Themen 6
M Regulärer Ausdruck Allgemeine Java-Themen 3
I Composite Pattern für Ausgabe von Ausdruck Allgemeine Java-Themen 3
P Regulärer Ausdruck um sich wiederholende Zeichen zu finden. Allgemeine Java-Themen 9
M Regulärer Ausdruck mit [ und ] Allgemeine Java-Themen 9
P Problem - Regulärer Ausdruck funktioniert nicht Allgemeine Java-Themen 5
J Regulärer Ausdruck Allgemeine Java-Themen 3
N Regulärer Ausdruck Allgemeine Java-Themen 2
F Problem mit regulärem Ausdruck Allgemeine Java-Themen 6
M Regulärer Ausdruck Allgemeine Java-Themen 2
A Probleme Umwandlung Ausdruck String in double Allgemeine Java-Themen 4
B regulärer ausdruck Allgemeine Java-Themen 9
P Dateinamen mit regulärem Ausdruck testen Allgemeine Java-Themen 9
T Einfacher regulärer Ausdruck Allgemeine Java-Themen 2
A Regulärer Ausdruck EMail-Prüfung Allgemeine Java-Themen 3
N Regulärer Ausdruck Allgemeine Java-Themen 2
M Bitte Hilfe mit REGEX (Negieren) Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben