Bonjour,
j'ai essayé de me débrouiller avec les exemples déjà donné dans cette page mais je n'arrive pas à trouver une solution.
Voici mon code:
// Text
String text = "blabla <br> blabla <br> blabla <br> blabla <br> blabla";
// Définition des Regex
String breakLine = "(.*)<br>(.*)<br>(.*)";
// Utilisation des Regex
Matcher mBreakLine = Pattern.compile(breakLine).matcher(text);
// Vérification des occurrences
while(mBreakLine.find())
{
// Affichage de group(1), group(2), ... , group(n)
for(int n=1; n<=mBreakLine.groupCount(); n++)
{
System.out.println(mBreakLine.group(n));
}
}
Ce code m'affiche ceci :
blabla<br>blabla<br>blabla<br> // group(1)
blabla // group(2)
blabla // group(3)
alors que je voudrai qu'il m'affiche cela :
blabla // group(1)
blabla // group(2)
blabla // group(3)
... // group(n)
Je sais qu'il y a un soucis avec ma Regex, mais je n'arrive pas à la rendre "récursive".
merci d'avance
question pour les génies de regexp, comme peut on extraire toutes les chaines entre #{chaine}# dans ce text :
blabla #{chaine1}# blablablablablablablablablablablabla #{chaine2}# blablablabla #{chaine3}# blablablablablablablabla
en utilisant regexp comment retourner une vecteur de string contenant chaine1, chaine2, chaine3 ??
String chaine = "blabla #{chaine1}# blablablablablablablablablablablabla #{chaine2}# blablablabla" + " #{chaine3}# blablablablablablablabla "; chaine = chaine.replaceAll(" ", ""); // car nous ne voulons pas les blancs String motif = "#\\{chaine.\\}#"; // le . de chaine. signifie qu'on veut chaine suivie d'un caractère (dans notre cas chaine1 2 ou 3) int nbreDeFois = 0; System.out.println("\nRECHERCHE DU MOTIF \"" + motif + "\"" + " dans la cha\u00eene:\n" + "\"" + chaine + "\"\n"); Pattern pattern = Pattern.compile(motif); Matcher matcher = pattern.matcher(chaine); while(matcher.find()) { nbreDeFois++; System.out.println("nbreDeFois: " + nbreDeFois); } System.out.println("\n\"" + motif + "\"" + " existe " + nbreDeFois + " fois dans \"" + chaine + "\"\n");Cordialement,
Dan
Pattern pattern = Pattern.compile("(.*?)*#\\{(.*?)\\}#.*?");
String chaine = "blabla#{chaine1}# blablablablablablablablablablablabla #{chaine2}# blablablabla"
+ " #{chaine3}# blablablabla{ksdfgifugqfhezf}blabla#{nonChaine}#blabla ";
Matcher m = pattern.matcher(chaine);
while(m.find()){
System.out.println(m.group(2));
}
--->Resultat
chaine1
chaine2
chaine3
nonChaine