Hallo alle zusammen,
ich arbeite gerade intensiv mit Regular Expressions und der .NET RegEx Engine.
Zurzeit bereitet mir eine Regular Expression Kopfschmerzen. Mit dieser Expression will ich Vornamen und Nachnamen einer Person Matchen.
Bsp.:
Müller-Wohlfart, Anna Kathrin geb. Spieß
Meine RegEx hat folgendes Format:
((?:[a-zA-ZäüöÄÜÖß_-]+[ ]?)+), ?((?:[a-zA-ZäüöÄÜÖß_-]+(?:[ ]|$))+)
Dies gibt mir das gewünschte Ergebnis.
(1)Müller-Wohlfart
(2)Anna Kathrin
Solange der Eingabestring gültig ist und die RegEx matcht, funktioniert alles tadellos. Doch sobald die RegEx nicht matcht, endet dies nicht als ein .IsMatch (...) == False. Nein, es endet überhaupt nichtmehr.
Bsp.:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Wenn dieser String gematcht werden soll hab ich wohl irgendwie eine RegEx mit Endlosschleife bekommen, was muss ich an der RegEx ändern, damit es funktioniert.
Der Fehler tritt auf egal ab die RegEx compiliert oder nicht compiliert ist.
Hab auch schon versucht sie zu negieren.
((?:[^ ,.\d]+[ ]?)+), ?((?:[^ ,.\d]+(?:[ ]|$))+)
Hier tritt der gleiche Fehler auf.
Getestet habe ich die RegEx in "Espresso" im "RegEx Designer" und direkt in meinem c# code.
Weiß jemand eine Lösung für dieses Problem?
MfG
Markus