Pour faire correspondre A à Z, nous allons utiliser regex:
[A-Za-z]
Comment autoriser regex à correspondre aux caractères utf8 entrés par l'utilisateur? Par exemple, des mots chinois comme
Pour faire correspondre A à Z, nous allons utiliser regex:
[A-Za-z]
Comment autoriser regex à correspondre aux caractères utf8 entrés par l'utilisateur? Par exemple, des mots chinois comme
Ce que vous cherchez sont propriétés Unicode.
par exemple, \p{L}
de tous les type de lettre à partir de n'importe quelle langue
Si une expression régulière pour rechercher un tel mot Chinois pourrait être quelque chose comme
\p{L}+
Il ya beaucoup de ces propriétés, pour plus de détails, voir regular-expressions.info
Une autre option est d'utiliser le modificateur
Pattern.UNICODE_CHARACTER_CLASS
Dans Java 7, il y a une nouvelle propriété, Pattern.UNICODE_CHARACTER_CLASS
qui permet à la version Unicode de la prédéfinis les classes de caractères, voir ma réponse ici pour plus de détails et des liens
Vous pourriez faire quelque chose comme ceci
Pattern p = Pattern.compile("\\w+", Pattern.UNICODE_CHARACTER_CLASS);
et \w
correspondent à toutes les lettres et tous les chiffres de toutes les langues (et bien sûr certains mots en combinant des caractères comme" _
).
Pour correspondre à des caractères individuels, vous pouvez simplement inclure dans une classe de caractères, soit comme des littéraux ou par l'intermédiaire de l' \u03FB
de la syntaxe.
Bien évidemment, on ne peut souvent pas la liste de tous les caractères autorisés dans les langues idéographiques. Pour faire de la regex traiter les caractères unicode en fonction de leur type ou de bloc de code, divers autres évasions sont pris en charge qui sont définis ici. Regardez la section "support de l'Unicode", en particulier les références à l' Character
de la classe et le Standard Unicode lui-même.
char
typechar
type est implicitement UTF-16Unicode est l'ensemble universel de caractères et de l'UTF-8 peut décrire tout cela (y compris les caractères de contrôle, de la ponctuation, des symboles, des lettres, etc.) Vous devrez être plus précis sur ce que vous voulez inclure et ce que vous souhaitez exclure. Java expressions régulières utilise l' \p{category}
de la syntaxe pour correspondre à codepoints par catégorie. Voir le standard Unicode pour la liste de catégories.
Si vous souhaitez identifier et séparer les mots dans une séquence d'idéogrammes, vous aurez besoin de regarder plus sophistiqué de l'API. Je voudrais commencer par l' BreakIterator
type.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.