Laden...

Regex mit not funktioniert nicht

Erstellt von TiTime vor 15 Jahren Letzter Beitrag vor 15 Jahren 868 Views
T
TiTime Themenstarter:in
68 Beiträge seit 2006
vor 15 Jahren
Regex mit not funktioniert nicht

Hallo zusammen!

Also ich möchte einen String überprüfen, dass alle Zeichen enthalten darf bis auf Umlaute und whitespaces.

string s = "asda8äüö9780dsd78???asd$$%%as";
Regex pattern = new Regex(@"[^äöüÄÖÜß\s]+");
if(pattern.Match(s).Success)
 .... // da will ich hin

Der Regex hatt immer einen match völlig unabhängig ob da ein umlaut drin ist oder nicht?

Ich hab es natürlich auch so probiert:


Regex pattern = new Regex(@"[^ä^ö^ü^Ä^Ö^Ü^ß^\s]+");

Aus irgendeinem Grund funktioniert mein Not nicht, egal was ich mache.
Woran kann das liegen?

thx

946 Beiträge seit 2008
vor 15 Jahren

Hallo.

Wenn du den gesamten string auf bestimmte Buchstaben überprüfen willst, solltest du das Pattern mit ^$ umschliessen.

Bezüglich der Syntax von RegEx kann ich dir das [Artikel] Regex-Tutorial empfehlen.
Zum Testen empfiehlit sich das On-the-fly Regex-Tester: Regex-Lab.
Das vereinfacht die Arbeit mit RegEx extrem.

mfg
SeeQuark

U
1.688 Beiträge seit 2007
vor 15 Jahren

Also ich möchte einen String überprüfen, dass alle Zeichen enthalten darf bis auf Umlaute und whitespaces.
...
Der Regex hatt immer einen match völlig unabhängig ob da ein umlaut drin ist oder nicht?

Dein Pattern "matcht" "asda8" - also solange nichts aus Deiner Aufzählung kommt. Warum machst Du das nicht umgekehrt? Prüfe mit "[äöüÄÖÜß\s]+", ob eines der verbotenen Zeichen enthalten ist.

T
TiTime Themenstarter:in
68 Beiträge seit 2006
vor 15 Jahren

Hallo! Danke für die Antworten!

:ujr

Ich habe es momentan so gelöst, dass ich umgekehrt überprüfe. War aber nur interessiert warum er mir das not gar nicht abnimmt.

:SeeQuark

Danke übrigens für den hinweis. habe das pattern mit ^$ umschlossen und funktioniert jetzt wunderbar.

new Regex(@"^[^äöüÄÖÜß\s]+$")

übrigens dass Regex Tutorial kenne ich natürlich nur den Tester hab ich mir noch nicht zugefügt, was ich aber definitive mache.

Thx für die Antworten. Cheers!