Comment faire correspondre les caractères Cyrilliques avec une expression régulière
Comment puis-je match en français et en russe Cyrillique à l'alphabet des personnages avec une expression régulière? Je veux seulement faire de caractères alpha, pas de chiffres ou de caractères spéciaux. Droit maintenant, j'ai
[A-Za-z]
- Regardez dans cette question: Regex et unicode
- Elle est ici: [А-Яа-я]
- Pour les russes que des personnages c'est:
[ЁёА-я]
(oùА
est russe). Le code unicode pour le russeа
est juste aprèsЯ
, de sorte que vous n'avez pas besoin de 2 plages. Les codes unicode pourЁё
n'est pas entreА-я
, vous devez spécifier Ёё séparément.
Vous devez vous connecter pour publier un commentaire.
Cela dépend de votre regex saveur. Si elle prend en charge classes de caractères Unicode (comme .NET, par exemple),
\p{L}
correspond à une lettre de caractères (dans n'importe quel jeu de caractères).Si votre
regex
saveur prend en charge blocs Unicode ([\p{IsCyrillic}]
), vous pouvez faire correspondre russe (Cyrillique) caractères avec:Sinon, essayez:
Explication:
Remarque:
Caractères Unicode liste et le Numérique Entités HTML de
[U+0400–U+04FF]
.Si vous utilisez moderne version de PHP - juste:
N'oubliez pas le u drapeau pour le support de l'unicode!
Expression régulière pour rechercher des alphabets cyrillique avec la normale(en anglais) alphabets :
Elle correspond à des caractères spéciaux,des alphabets cyrillique,l'anglais alphabets.
cela a fonctionné pour moi
[\u0400-\u04FF]
Divers regex dialectes utilisation
[:alpha:]
pour n'importe quel caractère alphanumérique dans la locale courante. (Vous devrez peut-être mettre ça dans une classe de caractères, par exemple[[:alpha:]]
.)Si vous utilisez l'Élixir:
Vous devez ajouter le
u
drapeau pour la prise en charge unicode.true
pour une Chaîne vide:String.match?("", ~r/^\p{Cyrillic}*$/u)
=>true
. Vous devriez changer de*
modificateur pour+
pour résoudre ce problème.Pour correspondre uniquement en russe des caractères Cyrilliques utilisation:
qui est l'équivalent de:
où
А
est en Cyrillique, et non latine. (En dépit de la recherche la même chose qu'ils ont des codes différents)\p{IsCyrillic}
,\p{Cyrillic}
,[\u0400-\u04FF]
qui d'autres ont suggéré correspondra toutes les variantes de l'alphabet Cyrillique, non seulement russe