Regexp
JavaPasBien
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour
je chercher a extraire Hello World de la String suivante:
"blablabla\nxd\nHello World!\nlol\nblablabla"
donc j'utilise
le code suivant:
je fais de meme avec cette string a peine differente:
et la miracle j'ai bien Hello World!
je souhaiterai comprendre pourquoi ca ne marche que dans le 2eme cas avec les <>
j'avais essayé avec "(.*xd)(.*)(.*lol)" initialement mais ca ne marche pas
j'ai cette version de java
java version "1.7.0_25"
OpenJDK Runtime Environment (fedora-2.3.12.1.fc17-i386)
OpenJDK Server VM (build 23.7-b01, mixed mode)
je chercher a extraire Hello World de la String suivante:
"blablabla\nxd\nHello World!\nlol\nblablabla"
donc j'utilise
le code suivant:
Pattern MY_PATTERN = Pattern.compile("(xd)(.*)(lol)");et la je n'ai rien en retour
Matcher m = MY_PATTERN.matcher("blablabla\nxd\nHello World!\nlol\nblablabla");
while (m.find()) {
String s = m.group(2);
System.out.println(s);
je fais de meme avec cette string a peine differente:
Pattern MY_PATTERN = Pattern.compile("(<)(.*)(>)");
Matcher m = MY_PATTERN.matcher("blablabla\nxd\n<Hello World!>\nlol\nblablabla");
while (m.find()) {
String s = m.group(2);
System.out.println(s);
et la miracle j'ai bien Hello World!
je souhaiterai comprendre pourquoi ca ne marche que dans le 2eme cas avec les <>
j'avais essayé avec "(.*xd)(.*)(.*lol)" initialement mais ca ne marche pas
j'ai cette version de java
java version "1.7.0_25"
OpenJDK Runtime Environment (fedora-2.3.12.1.fc17-i386)
OpenJDK Server VM (build 23.7-b01, mixed mode)
2 réponses
Tes deux exemples ne retournent pas la même valeur.
Cas 1:
group(2) = \nHello World!\n
Cas 2:
group(2) = Hello World!
Ça fait un moment que j'ai fait du Java mais j'oserais penser que ton problème réside dans les "\n".
Bonne chance!
Cas 1:
group(2) = \nHello World!\n
Cas 2:
group(2) = Hello World!
Ça fait un moment que j'ai fait du Java mais j'oserais penser que ton problème réside dans les "\n".
Bonne chance!
Il faudrait savoir ce que tu veux faire avec cette expression régulière, au delà de cet exemple. Parce qu'il y a plusieurs manières d'extraire cette chaîne de caractères, mais certaines ne seront pas bonnes pour ce que tu veux faire plus tard.
Le plus simple :
Le plus simple :
String str = "blablabla\nxd\nHello World!\nlol\nblablabla";
String[] tab = str.split("\n");
System.out.println(tab[2]); // "HelloWorld!"