2010-03-06 4 views
11

Ich möchte nur eingegebene Daten aus dem englischen Alphabet und aus dem Alphabet aus Deutschland zulassen.Wie wird das internationale Alphabet (Englisch a-z, + nicht Englisch) mit einem regulären Ausdruck abgeglichen?

Wie öäü OR Frankreich wie áê oder Chinesisch wie ...

Wie kann ich meine regulären Ausdruck so konfigurieren, dass er alle alphabetischen Zeichen der internationalen Alphabet übernimmt?

+1

Welche Sprache oder einen regulären Ausdruck Implementierung verwenden Sie? – Gumbo

+1

Chinesische "Alphabete" sind nicht "..."! – kennytm

Antwort

1

Mit PCRE wäre es \w, ein "Wort" -Zeichen. Es akzeptiert auch Unicode, wenn es richtig konfiguriert ist.

+1

'\ w' ist keine Grenze, sondern die Zeichenklasse von Wortzeichen. – Gumbo

+0

... und '\ b' ist die Wortgrenze. – kennytm

+0

In der Tat habe ich meine ursprüngliche Antwort geändert. Meine Erklärung war falsch. – Wolph

1

Es variiert. Einige Sprachen haben ein "Unicode" -Flag, das sich auf \d, \w usw. erstreckt. Einige Unterstützungsäquivalenzklassen in einem Bereich, z. [[=e=]] entspricht e, é, ê usw. Die Regex-Dokumentation für Ihre Sprache oder Bibliothek erläutert, welche Optionen verfügbar sind.

13

Da Sie speziell nach Unicode fragen, ist \p{L} die Abkürzung für einen Unicode-Brief. Nicht alle Regex-Varianten unterstützen diese Syntax jedoch. .NET, Perl, Java und die JGSoft-Regex-Engine wird, zum Beispiel, Python nicht.

So wird zum Beispiel \b\p{L}+\b ein ganzes Wort von Unicode-Zeichen übereinstimmen.

+1

Das wäre _great_, wenn es in Javascript funktioniert ersetzen regex, aber es scheint nicht für mich zu arbeiten (zumindest in Chrom). Irgendwelche Ideen? – aaaidan

+1

@aaaidan: Schwierig, da die eingebaute Regex-Engine von JavaScript sehr begrenzt ist und keine Abstraktion wie '\ p {L}' bietet. Sie können immer Ihre eigene Zeichenklasse aus allen Unicode-Buchstaben-Codepoints (dem Horror!) Erstellen oder Steve Levithans XRegExp-Bibliothek mit dem Unicode-Plugin verwenden: http://blog.stevenlevithan.com/archives/xregexp-unicode-plugin –

+0

Excellent. Prost! – aaaidan

0

in vielen Sprachen, können Sie einfach die Unicode-Zeichen in der Zeichenklasse eingeben: [a-zäöüß] usw.

+2

Das wird nicht viel helfen, wenn er ** alle ** Buchstaben zusammenbringen will. –

Verwandte Themen