Hello,
je reprends un projet et je suis tombé sur cette ligne de code :
et je ne comprends pas bien la pattern utilisée dans le "split" :?Code:
1
2 String[] textParts = ((Text)data).getText().split("[{}]");
Pourriez-vous m'éclairer?
D'avance merci.
Version imprimable
Hello,
je reprends un projet et je suis tombé sur cette ligne de code :
et je ne comprends pas bien la pattern utilisée dans le "split" :?Code:
1
2 String[] textParts = ((Text)data).getText().split("[{}]");
Pourriez-vous m'éclairer?
D'avance merci.
"Regexp", c'est une expression régulière. Celà permet de faire des recherches très puissantes sur les chaînes de caractères, en capturant éventuellement des sous-chaînes:
- les chaînes contenant (ou ne contenant pas) un mot donné
- les chaînes représentant un nombre (quel qu'il soit)
- etc...
Dans ton cas, la chaîne es t découpée à chaque caractère "{" et à chaque caractère "}".
Ainsi: "Bonjour {Mathieu}, je vais manger" sera découpée en 3 morceaux:
- "Bonjour " (découpage car on a rencontré "{")
- "Mathieu" (découpage car on a rencontré "}")
- ", je vais manger"
Entre les crochets [] de ton expression, tu as la liste des caractères pour lesquels on effectue un découpage.
Merci bien! je n'étais pas du tout sûr car les {} sont aussi utilisées pour quantifier une chaine d'où mon hésitation... :)
Oui, mais dans une expression régulière, tout ce qui est entre crochets [] n'est plus interprêté comme un opérateur spécial du langage des expressions régulières, mais comme un simple caractère.
Si cette phrase n'est pas claire, je m'explique:
- "[.]" acceptera uniquement le caractère '.', et non pas un caractère quelconque
- [.+*] acceptera un des 3 caractères '.', '*', ou '+'
S'il n'y avait qu'une seule chose à rajouter à ce que vient de dire CyberChouan c'est que tu peux trouver toutes les fonctions sur les regex dans la javadoc de sun
http://java.sun.com/j2se/1.5.0/docs/api/
Dans le package : java.util.regex
Plus précisement ici : http://java.sun.com/j2se/1.5.0/docs/...x/Pattern.html
A savoir que la javadoc est surement pas le meilleur moyen pour bien comprendre les regex et que si tu en as jamais fait, ca peut te paraitre de l'hebreux.
Bonne chance
Ca je ne le savais pas. Merci beaucoup pour tes éclaircissements :)
Je passe le post en résolu.
Edit : merci aussi a Zorm
Bien vu Zorm, mais tu as oublié l'excellent tutoriel de Hugo Etiévant sur les expressions régulières en java, qui est disponible sur developpez.com:
http://cyberzoide.developpez.com/java/regex/
C'est avec ce dernier que j'ai débuté sur les expressions régulières.
vi c'est mon support principal quand je bosse sur des regex ^^Citation:
Envoyé par CyberChouan