2010-03-06 13 views
11

Quiero permitir solo datos ingresados ​​del alfabeto inglés y del alfabeto de Alemania.¿Cómo hacer coincidir el alfabeto internacional (inglés a-z, + no inglés) con una expresión regular?

Como öäü O Francia como áê o chino como ...

¿Cómo puedo configurar mi expresión regular por lo que acepta todos los caracteres alfabéticos del alfabeto internacional?

+1

¿Qué idioma o aplicación expresión regular utiliza? – Gumbo

+1

¡Los "alfabetos" chinos no son '...'! – kennytm

Respuesta

1

Con PCRE sería \w, un carácter de "palabra". También acepta Unicode cuando está configurado correctamente.

+1

'\ w' no es un límite, sino la clase de caracteres de los caracteres de las palabras. – Gumbo

+0

... y '\ b' es el límite de la palabra. – kennytm

+0

De hecho, he modificado mi respuesta original. Mi explicación fue incorrecta. – Wolph

1

Varía. Algunos idiomas tienen un indicador "Unicode" que se extiende \d, \w, etc. Algunas clases de equivalencia de soporte en un rango, p. [[=e=]] coincide con e, é, ê, etc. La documentación de expresiones regulares para su idioma o biblioteca le explicará qué opciones hay disponibles.

13

Dado que específicamente solicita Unicode, \p{L} es el acceso directo para una letra Unicode. Sin embargo, no todos los sabores regex admiten esta sintaxis. .NET, Perl, Java y el motor de expresiones regulares JGSoft lo harán, Python no lo hará, por ejemplo. Por ejemplo, \b\p{L}+\b coincidirá con una palabra completa de caracteres Unicode.

+1

Esto sería genial si funcionara en JavaScript regex, pero parece que no funciona para mí (en chrome, al menos). ¿Algunas ideas? – aaaidan

+1

@aaaidan: Difícil dado que el motor de expresiones regulares incorporado de JavaScript es muy limitado y no proporciona una abstracción como '\ p {L}'. Siempre puede crear su propia clase de caracteres a partir de todos los puntos de código de letras Unicode (¡el horror!) O usar la biblioteca XRegExp de Steve Levithan con el complemento Unicode: http://blog.stevenlevithan.com/archives/xregexp-unicode-plugin –

+0

Excelente. ¡Aclamaciones! – aaaidan

0

en muchos idiomas, basta con que introduzca los símbolos Unicode en la clase de caracteres: [a-zäöüß] etc.

+2

Eso no ayudará mucho, cuando quiere unir ** todas las letras **. –

Cuestiones relacionadas