¿Cómo puedo unir los caracteres del alfabeto cirílico francés y ruso con una expresión regular? Solo quiero hacer los personajes alfa, sin números ni caracteres especiales. En este momento tengo
[A-Za-z]
Depende de tu sabor regex. Si admite clases de caracteres Unicode (como .NET, por ejemplo), \p{L}
coincide con un carácter de letra (en cualquier conjunto de caracteres).
Si su sabor regex admite bloques Unicode , puede hacer coincidir caracteres rusos (cirílicos) con:
[\p{IsCyrillic}]
De lo contrario, pruebe:
[U+0400–U+04FF]
Explicación:
[\p{IsCyrillic}] Options: Case insensitive; Exact spacing; Dot doesn't match line breaks; ^$ don't match at line breaks; Numbered capture Match a character from the Unicode block “Cyrillic” (U+0400–U+04FF) «[\p{IsCyrillic}]»
Nota:
Lista de caracteres Unicode y Entidades HTML numéricas de [U+0400–U+04FF]
.
Si usa la versión moderna de PHP, solo:
preg_match("/^[\p{L}]+$/u");
¡No olvide la bandera u para soporte Unicode!
Regex para unir alfabetos cirílicos con alfabetos normales (ingleses):
^[A-Za-z.!@?#"$%&:;() *\+,\/;\-=[\\\]\^_{|}<>\u0400-\u04FF]*$
Coincide con caracteres especiales, alfabetos cirílicos, alfabetos ingleses.
Varios dialectos de expresiones regulares usan [:alpha:]
para cualquier carácter alfanumérico en la configuración regional actual. (Puede necesitar poner eso en una clase de personaje, por ejemplo [[:alpha:]]
.)
esto funcionó para mí
[az\u0400-\u04FF]