RegEx : je suis nulle (et perdue)
Bonjour,
Je dois faire de la coloration syntaxique dans un petit éditeur de code maison.
En gros, je dois colorer tous les mots de notre langage.
Un mot est précédé d'un blanc et suivi d'un blanc ou d'un signe de ponctuation ou un opérateur (+, =, etc.)
J'ai trouvé un moyen de tester mes expression régulière : http://www.regexplanet.com/simple/index.jsp
Mais je n'arrive toujours pas à faire quelque chose !!
Voilà un exemple de ce que je fais :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
String mot;
String[] tests = {"if", "then", "else"};
// tests c'est pour l'exemple
String masq = "(^|\\s*|\\p{Punct})+";
String masq2 = "(\\s+.*|\\p{Punct}|$)+";
Matcher matcher;
int i, j, f, d;
for (int k = 0; k < tests.length; k++) {
mot = tests[k];
i = j = 0;
while ((j = text.indexOf(masq+mot+masq2, i)) != -1) {
i = j;
matcher = Pattern.compile( mot , Pattern.MULTILINE).matcher(text.substring(i));
if (matcher.find()) {
j = matcher.end() + i - 1;
doc.setCharacterAttributes(i + start, mot.length(), forbiddenkeyWordsStyle, true);
i += mot.length();
i = j;
}
}
} |
Quelqu'un pour corriger mon charabia ???
Merci :)