2017-01-24 2 views
1

Ich weiß, dass es viele verschiedene Regex-Fragen gibt, aber ich kann kein passendes finden:Wie überprüft man Regex String Space String?

Ich muss ein Eingabefeld validieren, das eine Zeichenfolge + Leerzeichen + Zeichenfolge enthalten sollte. Innerhalb der Strings sollten alle Zeichen erlaubt sein (ö, ä, ü, á, é).

Gültige Beispiele:

a b

George Michael

Diese

Ungültige Beispiele gut ist:

George

Michael

george

Also alles in allem möchte ich überprüfen, ob eine Person seine Vorname nur oder beide geschrieben hat, Vor- und Nachname. Ich freue mich über Vorschläge.

+0

Warum 'This is gööd' ist gültig? es erfüllt nicht die Anforderung 'string + space + string' – Toto

+0

'/\ S \ s + \ S/'sollte die Aufgabe erledigen. –

+0

@Todo Beinhaltet die Definition von Zeichenketten Sonderzeichen? Oder umgekehrt: Ist eine Saite auf 'a-z, A-Z' beschränkt? Wenn das der Fall ist, meine ich nicht eine technische Zeichenkette, aber ich weiß nicht, wie man es besser auf Englisch beschreibt. –

Antwort

1

Diese Regex sollte Ihnen helfen zu bestätigen, dass die Person sowohl Vor- als auch Nachname verwendet (2 Namen, nicht drei oder mehr).

Aktualisiert:

Das paßt jetzt drittes Wort zu optional

\S+ \S+(?: \S+)?

Beispiel Arbeiten hier: https://regex101.com/r/Tpo8gy/3

+0

Danke @Nabeel, dies deckt nicht 'Usain Quadi Bold' ab, da dies drei Teile eines vollständigen Namens sind.Kann ich diesen Fall irgendwie hinzufügen, indem ich einen '*' Selektor benutze, damit er auch gültig ist? –

+0

Lassen Sie mich updaten, 1 Sek. –

+0

plz überprüfen Sie jetzt @MarianRick –

1

Wenn Sie eine Sprache verwenden, die Unicode-Eigenschaften (perl erlaubt , PHP, Python, ...), könnten Sie tun:

\p{L}+\s+\p{L}+ 

Das wird zwei Wörter in jeder Sprache, die durch einen oder mehrere Sapces getrennt sind, übereinstimmen.

Wenn Sie mehr als zwei Worte haben könnten, aber mindestens zwei:

\p{L}+\s+\p{L}+(?:\s+\p{L}+)* 

Wo \p{L} steht für jeden Buchstaben in jeder Sprache.

+0

durch Sehen Ihrer Reputationsbewertung Ich dachte, Sie wüssten auch Regex:/funktioniert nicht: https://regex101.com/r/WguXZT/1 –

+0

Hinzufügen von" * "am Ende wird auch mehr als 3 übereinstimmen , er braucht zuerst, mittel und zuletzt nur max:/warum hast du meinen redigierenmann verändert? du hättest mindestens fragen sollen! duh! –

+0

@NabeelKhan: Wo hast du gesehen, dass OP auf 3 Wörter beschränken möchte? – Toto