Entwickler-Ecke

Basistechnologien - Regexp führender Großbuchstabe


fellfresse - Di 29.07.08 10:31
Titel: Regexp führender Großbuchstabe
Hallo,

ich versuche einen String als valide zu kennzeichnen, wenn er mit genau einem Großbuchstaben anfängt.
Derzeit lässt er aber auch mehrere Großbuchstaben am Anfang durch.

Kann mir da jemand helfen?


Quelltext
1:
2:
3:
4:
5:
Regex leadingBigLetter = new Regex("^[^A-Z]+");

...
if (leadingBigLetter.IsMatch(category))
...


bakachan - Di 29.07.08 11:13

Hallo,

Quelltext
1:
^[A-Z][^A-Z].*$                    

matcht alle strings die am Anfang genau einen Großbuchstaben haben.


fellfresse - Di 29.07.08 11:23

Funktioniert wunderbar!

Danke dafür.

Kannst du aber noch etwas für den Lerneffekt tun?
Das Thema reguläre Ausdrücke ist doch very difficult :)
Magst du mir noch sagen, warum du das ^[A-Z][^A-Z] so schreibst?
Das verstehe ich grad noch nicht so.

Danke!


bakachan - Di 29.07.08 11:48

Mir fällt gerade auf das der Regex den ich gepostet habe nicht matcht wenn der Gesammte String nur aus einem einizgen Großbuchstaben besteht.

Also hier eine bessere Variante:

Quelltext
1:
^[A-Z](?![A-Z]).*$                    

^ markiert den Stringanfang
$ markiert das Stringende
[A-Z] steht für den einzelnen Großbuchstaben
der nachfolgende Klammerausdruckt (?![A-Z]) ist ein negativer Lookahead der angibt das nach dem einzelnen Großbuchstaben kein weiterer Großbuchstabe stehen darf
.* steht für eine beliebige Anzahl beliebiger Zeichen


fellfresse - Di 29.07.08 12:59

Danke!