![]() |
[RegEx?] Gültiger Vorname
Hi,
ich versuche gerade per RegEx (in PHP per preg_match) einen Vornamen zu matchen. Als gültiger Vorname ist definiert:
Allerdings matcht meine RegEx auch Dinge wie:
Das sollte natürlich nicht sein. Meine RegEx sieht bisher so aus: #[a-zA-Z]+(?(?=\s?-?[a-zA-Z]+)\s?-?[a-zA-Z]+)# Vielleicht ist auch RegEx der falsche Ansatz? Ich könnte auch einfach alle Buchstaben in einen gültigen Pool werfen und sobald ein Zeichen nicht in diesem Pool ist, ist der Name falsch, aber vielleicht geht es auch per RegEx. Grüße :hi: |
Re: [RegEx?] Gültiger Vorname
Code:
Das würde deine Definition erfüllen (durch die Verankerung mit ^ und $ kannst du erzwingen, dass der gesamte String gematcht werden muss). Mit Umlauten etc. siehts allerdings schlecht aus ;) , da würde ich lieber folgendes probieren:
/^[a-zA-Z -]+$/
Code:
Dein erstes Gegenbeispiel matchen allerdings beide, denn rein von den Zeichen her wäre es ja valide. Du willst wohl eher "ein oder mehrere Wörter, die durch Bindestrich oder Leerzeichen getrennt sind":
/^\pL+$/u
Code:
Das matcht auch "Hans-Joachüm Maria".
/^(\pL+[ -])*\pL+$/u
|
Re: [RegEx?] Gültiger Vorname
also mal aufgeteilt
[A-ZÄÜÖ]+[a-zßäüö]* ist erlaubt - für deutsche Namen - klein und eventuell der 1. Buchstabe groß) Leerzeichen und "-" nur zwischen buchstaben und das müßte man nun irgendwie zusammenbauen |
Re: [RegEx?] Gültiger Vorname
Hi,
ich hab Deine letzte RegEx bei zwei verschiedenen Seiten getestet und beide spucken mir "PCRE does not support \p \P \l \L" an den Kopf. ![]() ![]() Ich bin gerade am Googlen, ob das wirklich an PCRE liegt oder ob neuere Versionen das unterstützen. |
Re: [RegEx?] Gültiger Vorname
das \pL könnte für Letter stehn ... wäre och logisch und dann dürftest du auch [A-Za-zßäüö] dafür nehmen können
|
Re: [RegEx?] Gültiger Vorname
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz