Problème avec les expressions régulières
Bonjour à tous,
Je viens vers vous car je n'arrive pas à utiliser correctement les expressions régulières (je n'ai sûrement pas le bon pattern) même après avoir vu pas mal d'exemples...
J'ai la string suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
String s = "sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"
sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"
sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"
sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"
sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"
sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"
sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"
sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"
sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"
sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"
sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"
sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"
sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"sdrgfrfgdgdrgdr gergt dgter gterge trg r name=\"coucou\"" |
J'aimerai pouvoir récupérer la valeur coucou de mon attribut name dans toutes les occurences trouvées sachant que cette string se trouve dans un fichier texte et donc qu'il n'y a pas de déspécialisation du caractère " (=> pas de \", simplement ").
A la rigueur le fait que la string se trouve dans un fichier texte ou non a peu d'importance, car le principe est le même.
J'ai donc utilisé les groupes via le bout de code suivant :
Code:
1 2 3 4 5 6 7 8 9
| private static String myCustomizedPattern = "(((name=)(\")(.*)(\")))";
Pattern p = Pattern.compile(myCustomizedPattern);
Matcher m = p.matcher(s);
while(m.find())
{
XMLContent+="\n"+m.group(5);
} |
En l'état, le résultat est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
coucou
coucou
coucou
coucou
coucou"sdrgfrfgdgdrgdrgergtdgtergtergetrgrname="coucou"sdrgfrfgdgdrgdrgergtdgtergtergetrgrname="coucou"sdrgfrfgdgdrgdrgergtdgtergtergetrgrname="coucou
coucou
coucou"sdrgfrfgdgdrgdrgergtdgtergtergetrgrname="coucou"sdrgfrfgdgdrgdrgergtdgtergtergetrgrname="coucou"sdrgfrfgdgdrgdrgergtdgtergtergetrgrname="coucou
coucou"sdrgfrfgdgdrgdrgergtdgtergtergetrgrname="coucou
coucou
coucou
coucou
coucou
coucou"sdrgfrfgdgdrgdrgergtdgtergtergetrgrname="coucou |
Des idées ? Merci d'avance (et désolé pour la longueur !)