Reguläre Ausdrücke, erlauben nur spezifisches Format. "John Doe"

7

Ich habe ein wenig recherchiert, aber ich habe nichts gefunden, was genau mit dem zusammenhängt, was ich brauche und wann immer ich versucht habe, den Ausdruck zu schaffen, ist es immer etwas abseits von dem, was ich brauche.

Ich habe etwas in der Art von [AZaz09]{3,8}\-[AZaz09]{3,8} versucht.

Ich möchte, dass das gültige Ergebnis nur Text-Text erlaubt, wobei entweder der Text alphabetisch oder numerisch sein kann, aber das einzige erlaubte Symbol ist - und das ist zwischen den beiden Texten.

Jeder Text muss mindestens drei Zeichen lang sein ({3,8}?), dann getrennt durch - .

Damit es gültig ist, könnten einige Beispiele sein:

%Vor%

Ungültige Tests könnten sein:

%Vor%     
mhvvzmak1 27.02.2016, 17:47
quelle

6 Antworten

10

Sie müssen Anker verwenden und - verwenden, damit die Zeichen in der Zeichenklasse als Bereich gelesen werden, nicht die einzelnen Zeichen.

Versuchen Sie:

%Vor%

Demo: Ссылка

Sie können es auch vereinfachen, aber mit dem% -Modifizierer i und dem% meta-Zeichen \d .

%Vor%     
chris85 27.02.2016, 17:51
quelle
5

Wenn akzentuierte Buchstaben zulässig sein sollen oder ein anderer Buchstabe im Unicode-Bereich (wie griechische oder kyrillische Buchstaben), verwenden Sie die u Modifikator (für UTF-8-Unterstützung) und \pL entspricht Unicode-Buchstaben (und \d für Ziffern):

%Vor%

Ausgabe:

%Vor%

Hinweis: Der Unterschied zu \w ist, dass [\pL\d] nicht mit einem Unterstrich übereinstimmt.

    
trincot 27.02.2016 18:21
quelle
4

Du könntest folgendes erfinden:

%Vor%

Wie @ chris85 darauf hingewiesen hat, wird auch \w mit einem Unterstrich übereinstimmen. Trincot hatte einen guten Kommentar (also passende Akzentbuchstaben). Um dies zu erreichen, verwenden Sie einfach den Modifizierer u .
Siehe eine Demo auf regex101.com und eine vollständige Code auf ideone.com .

    
Jan 27.02.2016 17:52
quelle
3

Sie können diese Regex verwenden

%Vor%

Regex-Demo

    
Stilleur 27.02.2016 17:56
quelle
2

Und ein kurzer.

%Vor%

Demo bei regex101

Meine Stimme für @ chris85, die am offensichtlichsten und performant ist.

    
bobble bubble 27.02.2016 20:37
quelle
1

Dieser

%Vor%

Ссылка

    
Son Vu 27.02.2016 17:57
quelle

Tags und Links