Forum Programmation.java Regexp, UTF-8 et accent

Posté par  .
Étiquettes : aucune
0
30
mar.
2006
Bonjour,
j'utilise une expression régulière pour parcourir un fichier écrit en UTF-8.
Ma regexp :
Pattern.compile(".*?\\s*\\[\"(\\w+(\\s+|\\w+)*)\"\\].*?");
me permet de trouver dans mon fichier :
["gromsang"] = {
ou
[ ["fleur de feu"] = {[
mais pas
["feuillerêve"] = { par exemple
La seule différence que je vois, ce sont les accents.
Je n'arrive pas à savoir si \w peut ou non correspondre à un caractère accentué. Si non, comment faire pour reconnaitre une expression avec des caractère accentué ou autre (ß,ü, etc.)
D'avance merci à ceux qui se pencheront sur ce problème
  • # PHP, non

    Posté par  (site web personnel) . Évalué à 3.

    Salut,
    pas testé avec java, mais avec PHP j'avais eu ce problème (UTF-8 aussi). J'avais du coup créé une nouvelle classe [\w|à|é.... que j'avais stocké dans une variable (une bête chaîne de caractères en fait), et que je renvoyais dans ma regex.
    • [^] # Re: PHP, non

      Posté par  . Évalué à 1.

      Ok, merci. Pour mon pb, j'ai complétement autrement, j'ai cherché l'index des caractères "[" et "]" et je récupère ce qu'il y a entre.
  • # Je manipule pas de regexs en Java, mais ...

    Posté par  . Évalué à 3.

    J'ai peut-être un indice : la signification exacte de \w doit dépendre de la locale en cours. Je sais pas comment la changer ni vérifier ça, mais généralement les changements de locales influes sur ce genre de chose (bon c'est vrai qu'en UTF8 en ne pense plus aux locales, mais il doit bien y avoir un fr-utf8 (non ?) qui change ça)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.