classe Pattern en utilisation internationale. [résoudu] - Java - Programmation
Marsh Posté le 17-02-2003 à 16:34:15
tu fais bien "\\b" hein?
sinon ben peut etre qqchose comme
"[\t\n\r]toto[\t\n\r]"
(mais je suis une brele en regex )
edit: euh ouais j'ai relu ton post, oublie ma proposition
Marsh Posté le 17-02-2003 à 16:37:25
"[\b^-]toto[\b^-]" ?
Marsh Posté le 17-02-2003 à 16:39:14
BifaceMcLeOD a écrit : Ouvre un bug dans la BugParade de Sun ? |
je n'y pensais pas mais maintenat que tu le dis, je me demande si je suis assez "qualifié" pour me permettre de lister un bug chez Sun...
j'vais en tout cas aller voir si ce bug n'est pas encore remonté.
Marsh Posté le 17-02-2003 à 16:40:34
--greg-- a écrit : "[\b^-]toto[\b^-]" ? |
j'avais essayé [\b-] et ça merdouillait.
le temps de lancer le brol et je reposte.
Marsh Posté le 17-02-2003 à 16:45:51
dans une doc/resumé des regex que j'ai ça dit
Citation : \b Boundary This matches a word boundary, either a beginning \w character, an ending \w character, or one of these two sequences: \w\W, \W\w. |
et pour "\w"
Citation : \w Bracket A word character, essentially the same as [a-zA-Z_0-9] |
ce qui laisse entendre que tout autre char qu'une lettre, un chiffre ou le "_" doit etre considéré comme separateur de mot... je sais pas si on peut incriminer java sur ce coup là, vu que ça vient de la "norme" regex (perl ou autre.??)
Marsh Posté le 17-02-2003 à 16:55:22
TBone a écrit : |
\b ne supporte pas être dans un test...
Code :
|
Marsh Posté le 17-02-2003 à 16:56:49
euh ben ouais, "[\\b^-]" plutot hein
Marsh Posté le 17-02-2003 à 17:00:35
TBone a écrit : |
En fait, ce n'est pas vraiment un bug, mais une amélioration. Jusqu'à présent, l'internationalisation était très mal gérée par la plupart des applications, et peu de gens s'intéressaient à ce problème. Java a rendu tout ça très simple, et, du coup, des tas de nouveaux problèmes apparaissent tout simplement parce que d'autres composants "classiques" ne sont absolument pas prévus pour cela. Typiquement, les expressions régulières, dont les utilisateurs ont jusqu'à présent toujours accepté de se voir imposer les règles syntaxiques de l'anglais.
Marsh Posté le 17-02-2003 à 17:02:17
--greg-- a écrit : euh ben ouais, "[\\b^-]" plutot hein |
non, pas en ligne de commande
le "\\b" c'est quand tu écris "\b" dans un String Java
Marsh Posté le 17-02-2003 à 17:04:04
BifaceMcLeOD a écrit : |
c'est ce que j'ai dit ce matin à mon boss technique par mail
Marsh Posté le 17-02-2003 à 17:48:42
BifaceMcLeOD a écrit : Ouvre un bug dans la BugParade de Sun ? |
je n'ai rien trouvé... (mais c'est a première fois que j'utilise leur interface, j'ai p-ê mal cherché)
quoiqu'il en soit, j'ai posté une question dans un thread discutant de ce "word boundary".
Marsh Posté le 19-02-2003 à 16:16:21
après qques lectures intéressantes et une discussion avec un dév. sur java.sun.com "\bt[iou]t[iou]\b" est devenu "\\b(?<!-)t[iou]t[iou](?!-)\\b"
et là ça marche...
et
Marsh Posté le 19-02-2003 à 16:21:06
Tu peux détailler, s'il te plait ? Ou mettre un lien sur votre discussion : je serais curieux de comprendre.
Marsh Posté le 19-02-2003 à 16:32:03
BifaceMcLeOD a écrit : Tu peux détailler, s'il te plait ? Ou mettre un lien sur votre discussion : je serais curieux de comprendre. |
pareil
cte regex de sauvage
Marsh Posté le 19-02-2003 à 16:49:01
c'est sûr, c'est une regexp que je n'ai pas encore tout à fait comprise (il l'a expliqué brièvement.)
le discussion n'est pas très technique, il m'a juste (très bien) aidé en me filant des RegExp à tester: http://forum.java.sun.com/thread.j [...] ead=347712
à partir de la "reply 5"
Marsh Posté le 17-02-2003 à 15:58:46
'lut,
j'utilise la classe java.util.regex.Pattern avec succès la plupart du temps mais là je coince sur un cas particulier.
je désire détecter des patterns en mode word; càd que je ne m'intéresse qu'aux mots pouvant répondre à ces patterns: "riz" par exemple doit détecter le mot "riz" et pas le groupe de lettres r-i-z dans "rizière".
j'utilise pour cela le Word Boundary "\b" de la catégorie Boundary Matcher (Javadoc de Pattern) ce qui donne: "\briz\b"
ça marche plutôt bien mais en apparemment , en anglais le caractère '-' est considéré comme un caractère séparateur de mots... pas en français.
si je veux remplacer "toto" par "bidule" dans la phrase "titi-toto toto", je vais obtenir "titi-bidule bidule"... ce qui n'est pas correct pour mon programme.
en effet, je voudrais qu'il ne me détecte pas le premier "toto" et je voudrais donc obtenir: "titi-toto bidule"
ma question: comment faire pour internationaliser la classe Pattern ? je cherchais un moyen de spécifier la localisation mais sans succès...
question subsidiaire: si il n'y a pas moyen d'internationaliser Pattern, comment puis-je faire pour retirer le '-' de la classe de détection "\b"
pour être complet, avant de découvrir "\b", j'utilisais " ,;:.!\?'\(\)" ce qui fonctionnait assez bien (malgré une bidouille nécessaire).
j'utilise depuis "\b" car il réagit beaucoup mieux aux bords des chaînes de caractères et m'évite des entorses de code.
qq'un peut-il m'aider ?
Message édité par TBone le 19-02-2003 à 16:50:00
---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.