MarkusLe Geschrieben 7. April 2006 Teilen Geschrieben 7. April 2006 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Argbeil Geschrieben 19. April 2006 Teilen Geschrieben 19. April 2006 Einen Schritt zurück: Was willst du denn überhaupt mit der RegEx erreichen? Im welchen Fall soll sie Matchen, in welchem Fall nicht? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MarkusLe Geschrieben 24. April 2006 Autor Teilen Geschrieben 24. April 2006 Hallo Argbeil, Die Regex sollte erkennen, ob ein Vorname und ein Nachname, Kommagetrennt in der Zeile existieren. Also erstmal eine Validierung, zusätzlich sollen Vor- ,und Nachname ein Gruppe 1 und Gruppe 2 abgelegt werden, um sie in einem Personenobjekt abzulegen. Das Problem habe ich denk ich mittlerweile gefunden. Dieser Ausdruck erzeugt beinahe endlosviele Matches, weil praktisch jede moegliche Zeichenkombination gematcht wird. (.+)+ Hab das Problem mittlerweile auf anderem Wege gelöst Danke für deine Antwort Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.