PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Regulärer Ausdruck gesucht


PatkIllA
2012-11-08, 17:26:47
Ich möchte in .NET und im XML Schemas einen String überprüfen und feststellen ob er die folgenden Bedingungen erfüllt.


genau eine Zeile
minimal ein Zeichen lang und maximal 128 Zeichen lang
keine Whitespaces am Anfang und Ende. Mittendrin ist ok.
keine ControlCodes sondern nur druckbare Zeichen (sind das die richtigen Ausdrücke?)
Umlaute und sonstige Zeichen aus anderen Sprachen sind erlaubt

Bei den ControlCodes stehe ich auf dem Schlauch. Und wie ist das mit den Unicode control characters? Da gibt es doch so nette Dinge wie textrichtung umdrehen usw.

Pinoccio
2012-11-08, 20:34:09
Also Unicode-Strings, ja?
Was heißt dann 128 Zeichen? Weil: à sieht aus wie ein Zeichen, kann aber als U+0061 (a) gefolgt von U+0300 (der accent grave) codiert sein. Das sind nach Unicode-Regex-Konvention zwei Zeichen. à kann aber auch U+00E0 sein (also ein a mit accent grave) - ein Unicode-Zeichen. Hilfsweise also musst du sowas wie (?>\P{M}\p{M}*) nutzen - ein "normales" Zeichen + Ergänzungszeichen, davon halt 1 bis 128.
Wie das mit den ControlCodes ist, weiß ich leider auch nicht.
Genau eine Zeile und Whitespaces an Anfang und Ende müsstest du ja selber hinbekommen, oder?

mfg

RattuS
2012-11-10, 02:29:36
Angenommen es gäbe mehr druckbare Zeichen als Steuerzeichen, müsstest du ja einfach nur explizit die Steuerzeichen ausschließen (^).

PatkIllA
2012-11-10, 17:11:00
Auf das Ausschließen bin ich auch schon gekommen, aber vom Gefühl hätte ich was eleganteres erwartet.

@Pinoccio
im Moment ist das nur eine Begrenzung um die Gui nicht zu springen. Trotzdem wäre es wohl besser wenn dein Beispiel mit 2 Zeichen auch als zwei Zeichen zählt falls man das auch mal für Datenbanken verwenden würde.

universaL
2012-11-10, 19:14:35
zwar in ruby, aber evtl gibts in .net ja auch sowas wie \w
[code]
^\w{1,128}$|^\w[\w ]{0,127}$
[\code]