Expression réguliére

Signaler
Messages postés
29
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
15 avril 2008
-
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
-
Bonjour

j'essai d'extraire le contenu des balises .......

avec l'expression suivante :

Pattern.compile("(.*)

");

le résultat rendu est vide

dois je ajouter quelquechose à cette expression ?!  Help pliz !!!

8 réponses

Messages postés
29
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
15 avril 2008

Voici mon problem en detail :

j'ai une structure de la forme :
<p>
Welcome to the homepage of HTMLParser - a super-fast real-time
parser for real-world HTML. What has attracted most developers to HTMLParser has
been its simplicity in design, speed and ability to handle streaming real-world
html.
</p>
<p>
The two fundamental use-cases that are handled by the parser are
extraction and transformation

(the syntheses use-case, where HTML pages are created from scratch, is better
handled by other tools closer to the source of data). While prior versions
concentrated on data extraction from web pages, Version 1.4 of the
HTMLParser has substantial improvements in the area of transforming web
pages, with simplified tag creation and editing, and verbatim toHtml() method
output.
</p>

donc quad j'applique l'expression en haut ca donne RIEN !!

ok Mnt quand j'applique l'expression suivante :  "<[p|P]>(.*?)"

ca donne le résultat suivant :

The two fundamental use-cases that are handled by the parser are

comme vous voyez ca me donne juste la premiere phrase du deuxieme paragraphe  :s:s

si quelqu'un peut m'aider ca serai cool  ( c vraiment urgent !!)

bonne journée
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
37
Salut:

Comme tu as utilisé les groupement tu dois utiliser la méthode group(int) pour récupérer le contenu de la balise:

Pattern p = Pattern.compile("(.*)

");
Matcher m = p.matcher("Salut tous

");

while(m.find()) {
    String paragraph = m.group(1);
    System.out.println(paragraph);
}
Messages postés
29
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
15 avril 2008

Ok ton example  marche bien

ok maintenant si on met ca :       Matcher m = p.matcher("      \n Salut \n tous

");

Ca marche plus :s:s

bonne journée
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
37
Salut:

Il faut dans ce cas spécifier le flag DOTALL:

Pattern p = Pattern.compile("(.*)

", Pattern.DOTALL);
Matcher m = p.matcher("\nSalut tous\n

");

while(m.find()) {
    String paragraph = m.group(1);
    System.out.println(paragraph);
}
Messages postés
29
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
15 avril 2008

Merci pour ta réponse amigo:)

j'ai un autre problem si tu peux m'aider avec celui la j poserai plus de questions lol  :)
voila
supposons j'ai le code suivant

     blalalalalaalal
   dksdjsjds
   sdsjd

    ici

j'applique l'expression suivante :   "\\s([\\s|\\S]*)

"  pour capturer le contenu entre les balises et

mais lui  il donne comme résultat ce qui est entre la preeeeemiere balise   et laaaaa deeeeernieeere balise

c stressant  :s

vous avez une solutions pour ca SVP ?

merci
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
37
Salut:

Qu'est ce que tu veux extraire cette fois?
Messages postés
29
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
15 avril 2008

le contenu de chaque paragraph

merci
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
37
Salut:

Est ce que la précédante expression régulière ne fait pas ce qui est demandé?