Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2904 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Expression régulière

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Expression régulière

n°1225811
molton
Toujours dans la tendance...
Posté le 18-10-2005 à 22:46:09  profilanswer
 

Je souhaite récupère à partir d'une page Web, tout ce qui se trouve entre les balises <body> et </body>
Pour cela j'ai pensé utiliser une expression régulière en Java.
 
Cependant je n'arrive pas à spécifier que je veux <body> + tout ce qui suit mais qui est différent de '</body>' + </body>
 
Voici ma regex qui ne fonctionne pas:

Code :
  1. <body>([^<]*)</body>


 
Une idée ?
 
Merci d'avance :)

mood
Publicité
Posté le 18-10-2005 à 22:46:09  profilanswer
 

n°1225818
0x90
Posté le 18-10-2005 à 23:03:12  profilanswer
 

Ta regexp refuse tout < dans le code entre les deux balises, donc tout body contenant d'autres balises à l'intérieur. [:spamafote]
Accessoirement, t'es sur qu'une regexp serait l'idéal pour ton truc, autant niveau lisibilité que performances :/


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1225828
Jubijub
Parce que je le VD bien
Posté le 18-10-2005 à 23:31:29  profilanswer
 

oui si t'a page web est valide XHTML t'a la ressource d'utiliser DOM ou SAX...
 
si elle l'est pas y'a des parseurs HTML...dont un dans le package java (il est caché mais il y en a un, sans doc, mais facile à comprendre néenmoins...regarde, y'a un tutorial dessus http://java.sun.com/products/jfc/t [...] bookmarks/


---------------
Jubi Photos : Flickr - 500px
n°1225830
0x90
Posté le 18-10-2005 à 23:34:10  profilanswer
 

arg parser tout l'html ... je pensais à un truc _simple_, pas à encore plus de calcul pour un truc aussi bête :/


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1225924
phnatomass
Je m'empare de ton esprit !!
Posté le 19-10-2005 à 09:53:08  profilanswer
 

En partant du pricinipe que dans un document html tu n'a qu'une seule balise <body>, un expression du type <body>(.*)</body> devrait fonctionner, en positionnant l'option MULTILINE ou son équivalent.
Pour les balises html pouvant être imbriqué dans elles mêmes comme la balise table par exemple, le problême ne peut pas être résolue avec une seule reg exp.

n°1225946
sircam
I Like Trains
Posté le 19-10-2005 à 10:26:47  profilanswer
 

Tout cela m'a l'air bien violent.
 
Si tu récupères une page web, il y a fort parier que tu travailles avec des streams. Pdt que tu as le stream sous la main, pq ne pas détecter l'ouverture et la fermeture des balises, et traiter la partie pertinente du flux ?
 
Parce que là, ça sent la page stockée dans un StringBuffer (voire un String!) avant traitement, et c'est peut-être pas nécessaire ni idéal.
 
Je m'orienterais plutôt vers un automate fini (bien grand mot pour généraliser ce que je propose supra).


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1226447
bobbyto
Posté le 19-10-2005 à 17:46:43  profilanswer
 

Bonjour,
Pourrait-on tout simplement fait un replace de <body> et de </body> par "" sachant qu'il ne se repetent qu'une fois...

n°1226474
sircam
I Like Trains
Posté le 19-10-2005 à 18:22:20  profilanswer
 

Mais vous êtes tous à la masse aujourd'hui ? [:mlc]
 
Oui, si la page est "déjà" en mémoire, zyva à coup de replace et tout ce que tu veux. Mais a priori, je ne vois pas pq on chargerait toute la page pour ensuite faire ce genre de processing. Mieux vaut traiter le flux quand il passe.
 
Pour juste une page, on s'en fout, mais s'il faut le faire avec n pages, de préférence bien grasses, on va encore gueuler que Java, c'est lent.
 
Et puis, c'est tellement plus élégant de faire le processing sur le flux quand il coule sous vos pieds que de charger tout le bazar sans réflechir. [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Expression régulière

 

Sujets relatifs
Expression reguliere sur une requete InsertExpression régulière : le challenge !
expression régulière: b vaut true au lieu de falseexpression reguliere
JavaScript Expression RégulièreExpression reguliere
Expression reguliereexpression reguliere
problème expression regulière[PHP] Expression régulière
Plus de sujets relatifs à : Expression régulière


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)