IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

probleme java regexp


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 14
    Points : 9
    Points
    9
    Par défaut probleme java regexp
    Bonjour
    je chercher a extraire Hello World de la String suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "blablabla\nxd\nHello World!\nlol\nblablabla"
    donc j'utilise
    le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Pattern MY_PATTERN = Pattern.compile("(xd)(.*)(lol)");
    Matcher m = MY_PATTERN.matcher("blablabla\nxd\nHello World!\nlol\nblablabla");
    while (m.find()) {
    String s = m.group(2);
    System.out.println(s);
    et la je n'ai rien en retour
    je fais de meme avec cette string a peine differente:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    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. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    "\n" n'est pas reconnu par le . par défaut.

    Pour que le . puisse reconnaître même les fins de ligne, il faut faire par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pattern.compile(taRegex, Pattern.DOTALL);
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    merciiii

    maintenant je change un peu le problème
    j'ai la String suivante:

    <TABLE>
    xd
    <TR class=blabla>
    Hello World!
    </TR>
    </TABLE>
    lol
    blablabla


    et je veux toujours recuperer Hello World!

    et Pattern
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     MY_PATTERN=Pattern.compile(".*<TR class=.*>(.*)</TABLE>.*", Pattern.DOTALL);
    ne marche plus évidemment

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    On pourrait adapter, mais ça ne ferait que décaler le problème encore et encore, sans jamais y arriver.

    La vraie solution : oublie les regex, elles ne peuvent pas parser de HTML.
    Utilise quelque chose comme jsoup à la place.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    jsoup ou nekohtml et un coup de xpath derriere

Discussions similaires

  1. probleme java 1.5 (affichage applet)
    Par argon dans le forum AWT/Swing
    Réponses: 21
    Dernier message: 19/03/2006, 12h26
  2. [RegExp] problème de regexp
    Par carlos20 dans le forum Langage
    Réponses: 13
    Dernier message: 06/12/2005, 13h52
  3. Probleme de RegeXp
    Par vodevil dans le forum Langage
    Réponses: 6
    Dernier message: 29/11/2005, 19h33
  4. [Exception]Probleme : Java.lang.Exception
    Par Nico66 dans le forum Général Java
    Réponses: 6
    Dernier message: 09/05/2005, 12h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo