Hillfeeeeee: Regulärer Ausdruck gesucht

 


alexxxus
Veteran

31.07.09
14:02 Uhr
Ich kapiere dieses Regex einfach nicht. Ich ärgere mich jetzt seit heute morgen damit herum einen Ausdruck zu finden, der deutsche und europäische Namen, also mit allen entsprechenden Sonderzeichen, Umlauten und Accents inklusive der Möglichkeit von Doppelnamen mit und ohne Bindestrich findet.
Ich kriege es nicht hin und kann einfach nichts dazu finden. Das muss doch bei jeder normalen Benutzernameldung zu finden sein. Aber ich bin zu blöd und gerade tiersch angenervt und kann nix finden. Hillffeeeeeee.
Link zu diesem Beitrag in die Zwischenablage kopieren
kasn
Gast

31.07.09
14:08 Uhr
sowas ist recht schwer umzusetzen, und wird eigentlich nirgendwo gemacht. Wir pruefen das meist per blacklisting, also schauen ob Zeichen drin sind die nicht drin sein duerfen.
Link zu diesem Beitrag in die Zwischenablage kopieren
alexxxus
Veteran

31.07.09
14:10 Uhr
soll mir auch recht sein. haupsache es funktioniert. hast du ein beispiel parat?
Link zu diesem Beitrag in die Zwischenablage kopieren
Zops
Dauergast

31.07.09
14:14 Uhr
RegEx Cheat Sheet
Python RegEx Doc

der deutsche und europäische Namen, also mit allen entsprechenden Sonderzeichen, Umlauten und Accents inklusive der Möglichkeit von Doppelnamen mit und ohne Bindestrich findet.

Was willst du denn dann ausschließen?
Link zu diesem Beitrag in die Zwischenablage kopieren
alexxxus
Veteran

31.07.09
14:22 Uhr
Na Zahlen und so Zeug &%$§“, welches eben nicht in Namen gehört. Außerdem will ich festlegen, daß nur mit Großbuchstaben begonnen werden kann und nicht mit dem Bindestrich.

Irgendwie klappt es jetzt auch. Man kann allerdings noch mit einem Bindstrich den Namen beginnen. Aber das ist mir jetzt egal.

Nichtsdestotrotz wäre ich weiterhin erfreut über euren guten Ideen -)
Link zu diesem Beitrag in die Zwischenablage kopieren
kasn
Gast

31.07.09
14:23 Uhr
ich hab grad mal in 2 projekten geschaut, wir pruefen tatsaechlich nur auf vorhanden oder nicht. und eben bei der Weiterverarebeitung und der Ausgabe entsprechend escapen.

irgendwie passend dazu: xkcd #327

aber mal zum problem:

  1. /^[A-Z][^&%$§“]+ (...) $/
Quelltext in Zwischenablage kopieren
so in etwa vielleicht, dann geht mit nem Grossbuchstaben los, nur dann halt noch irgendwie die Umlaute reinbringen
Link zu diesem Beitrag in die Zwischenablage kopieren
Rusty
Veteran

31.07.09
15:18 Uhr
Ursula Von Der Leyen
Link zu diesem Beitrag in die Zwischenablage kopieren
phloo
Veteran

31.07.09
15:39 Uhr
\w

das schließt schon mal alle Sonderzeichen aus (Zahlen und Unterstrich erlaubt)
mit \D kannst du auch alle Zahlen ausschließen

Ansonsten würde ich im zweiten Part von kasn nur die Zeichen angeben die erlaubt sind, ohne das ^ zu Beginn
Link zu diesem Beitrag in die Zwischenablage kopieren
Dollr
Gast

01.08.09
09:05 Uhr
smoke

  1. <?
  2.  
  3. function chk_n($n){
  4. $p="#^[\p{Lu}]([\p{Ll}\p{Lu}]+(\-[\p{Lu}]?[\p{Ll}]+)?([\' ]))+".
  5. "[\p{Lu}][\p{Ll}]+(\-[\p{Lu}][\p{Ll}]+)?$#u";
  6. return((preg_match($p,$n)==1)?("Hello {$n}"):"Wrong name! ({$n})");
  7. }
  8.  
  9. $n=array("Ka-Ku Ko-Lu Mu", "Jarosław Kaczyński",
  10. "Анатолий Александрович Собчак", "Jóhanna Sigurðardóttir",
  11. "Olé von Beust", "hans Wurst", "Åke Blomqvist", "åke Blomqvist",
  12. "Æĵś Ŀĕĵ-Kohlberg", "-Franz Müller", "Alf-Alfí Vögel",
  13. "Evrard d'Orleans", "Michael Joseph Jackson", "50 Cent");
  14.  
  15. for($x=0;$x<sizeof($n);$x++){print(chk_n($n[$x])."<br/>\n");}
  16.  
  17. ?>
Quelltext in Zwischenablage kopieren
Link zu diesem Beitrag in die Zwischenablage kopieren
 
#