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

Collection et Stream Java Discussion :

Problème regex


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Par défaut Problème regex
    Bonjour,

    Je suis débutant en Java et j'aimerais extraire l'information {Alpha1;AlphaDE4} des balises suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //<span class="planete-name">Alpha1</span>
    //<span class="planete-koords">[2:147:5]</span>  
     
     //<span class="planete-name">AlphaDE4</span>
    //<span class="planete-koords">[5:147:5]</span>
    Pour que l'extraction soit correct je fais d'abord un tableau de String que j' initialise .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import java.util.ArrayList;
    import java.util.regex.Pattern;
    import java.util.regex.Matcher;
     
    import android.util.Log;
     
    public class httpAnalyse {
     
     public ArrayList<String> lists_planete = new ArrayList<String>();
    Voici le String que je veux parser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <div id="countColonies">    
        <p class="textCenter tipsStandard" title="|Nombre de planètes possibles">
            <span>7/9</span> Planètes    </p>    
     
    </div>
     
         <div class="smallplanet">
                 <a href="index.php?page=overview&session=ad298d8dc16d&cp=35084069"
              title="|<B> [4:56:13]</B><BR>13.920km (43/163)<BR>-78 °C à -38°C en moyenne"
               class="planetlink  tipsStandard">
            <img class="planetPic" src="img/planets/ice_10_1.gif"/>
             <span class="planet-name">Alpha1</span>
             <span class="planet-koords">[2:56:13]</span>
             </a>
              </div>
     
         <div class="smallplanet">
                 <a href="index.php?page=overview&session=ad298d8dc16d&cp=35084026"
              title="|<B> [5:493:15]</B><BR>13.824km (43/163)<BR>-82 °C à -42°C en moyenne"
               class="planetlink  tipsStandard">
            <img class="planetPic" src="img/planets/normal_9_1.gif"/>
             <span class="planet-name">Alpha145</span>
             <span class="planet-koords">[1:493:15]</span>
             </a>
              </div>
         <div class="smallplanet">
     
                 <a href="index.php?page=overview&session=ad298d8dc16d&cp=35083903"
              title="|<B> [6:147:5]</B><BR>15.840km (52/163)<BR>23 °C à 63°C en moyenne"
               class="planetlink  tipsStandard">
            <img class="planetPic" src="img/planets/normal_3_1.gif"/>
             <span class="planet-name">Demon3</span>
             <span class="planet-koords">[1:147:5]</span>
             </a>
                  <a class="constructionIcon tipsStandard" title="|Mine de métal"><img src="img/icons/wrench.gif" height="12" width="12" /></a>
            </div>
         <div class="smallplanet">
     
                 <a href="index.php?page=overview&session=ad298d8dc16d&cp=35083516"
              title="|<B> [3:76:4]</B><BR>14.760km (58/163)<BR>24 °C à 64°C en moyenne"
               class="planetlink  tipsStandard">
            <img class="planetPic" src="img/planets/dry_1_1.gif"/>
             <span class="planet-name">AlphaTor</span>
             <span class="planet-koords">[2:76:4]</span>
             </a>
              </div>
         <div class="smallplanet">
                 <a href="index.php?page=overview&session=ad298d8dc16d&cp=35083506"
              title="|<B> [4:71:5]</B><BR>17.520km (60/163)<BR>25 °C à 65°C en moyenne"
               class="planetlink  tipsStandard">
     
            <img class="planetPic" src="img/planets/normal_7_1.gif"/>
             <span class="planet-name">Rocki</span>
             <span class="planet-koords">[4:71:5]</span>
             </a>
              </div>
         <div class="smallplanet">
                 <a href="index.php?page=overview&session=ad298d8dc16d&cp=35081882"
              title="|<B> [4:71:5]</B><BR>17.040km (92/163)<BR>27 °C à 67°C en moyenne"
               class="planetlink  tipsStandard">
            <img class="planetPic" src="img/planets/normal_7_1.gif"/>
     
             <span class="planet-name">Bioman</span>
             <span class="planet-koords">[1:71:5]</span>
             </a>
                  <a class="constructionIcon tipsStandard" title="|Silo de missiles"><img src="img/icons/wrench.gif" height="12" width="12" /></a>
            </div>
         <div class="smallplanet">
                 <a href="#"
                class="planetlink active tipsStandard"
                title="|<B> [2:55:7]</B><BR>12.800km (98/163)<BR>-3 °C à 37°C en moyenne">
            <img class="planetPic" src="img/planets/jungle_3_1.gif"/>
     
             <span class="planet-name">planète fuck</span>
             <span class="planet-koords">[1:55:7]</span>
             </a>
                  <a class="constructionIcon tipsStandard" title="|Mine de métal"><img src="img/icons/wrench.gif" height="12" width="12" /></a>
    Voici ma fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    public ArrayList<String> AnalysePlName(String matr)
     {
         //lists_name
     
         //<span class="planete-name">Alpha1</span>
         //<span class="planete-koords">[2:147:5]</span>  
     
         String regex = "(net-name\"> )+([a-zA-Z0-9]+)(</span> )+";
         p = Pattern.compile(regex);
         m = p.matcher(matr); // get a matcher object
     
         Log.d("Android","zzz!!" );
         if (m.find())  
         {
              //System.out.println("Match planete "+ m.group(2));
              Log.d("AnalysePlName",m.group(2));
     
              lists_name.add(m.group(2));
         }
         return lists_name;  
     }
    Je n'obtiens qu'une valeur alors que je devrais avoir 7 valeurs au total.

    Avez-vous une idée ou une piste pour ce problème ?

  2. #2
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Par défaut Reponse possible
    Bonjour,

    Plutot que de vous focaliser sur la lecture texte de votre fichier en vous appuyant sur les expressions régulières, je vous propose d'exploiter les fonctionnalités de lecture et d'interpètation de la classe JEditorPane. Croyez-moi, ça vaut le coup d'examiner cette classe. En trois lignes de codes, elle vous permettra de récupérer les valeurs de toutes les balises 'planet-name'...
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Par défaut
    Bonjour Pursang

    Je viens de lire votre réponse et je trouve celle solution super par contre j'ai du mal a la mettre en application , pouvez-vous me donner un exemple avec la classe JEditorPane

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <html>
    <head>
    contenu du head
    </head>
    <body>
    <div id="monid">
    </div>
    </body>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    JEditorPane pane = new JEditorPane(""text/html", "structure_de_ta_page");
    Element monid = pane.getDocument().getElement("monid");
    cdt

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    Salut,

    11 minutes chrono pour écrire ça en Python

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    uh = '''<div id="countColonies"> 
    <p class="textCenter tipsStandard" title="|Nombre de planètes possibles">
    <span>7/9</span> Planètes </p> 
     
    </div>
     
    <div class="smallplanet">
    <a href="index.php?page=overview&session=ad298d8dc16d&cp=35084069"
    title="|<B> [4:56:13]</B><BR>13.920km (43/163)<BR>-78 °C à -38°C en moyenne"
    class="planetlink tipsStandard">
    <img class="planetPic" src="img/planets/ice_10_1.gif"/>
    <span class="planet-name">Alpha1</span>
    <span class="planet-koords">[2:56:13]</span>
    </a>
    </div>
     
    <div class="smallplanet">
    <a href="index.php?page=overview&session=ad298d8dc16d&cp=35084026"
    title="|<B> [5:493:15]</B><BR>13.824km (43/163)<BR>-82 °C à -42°C en moyenne"
    class="planetlink tipsStandard">
    <img class="planetPic" src="img/planets/normal_9_1.gif"/>
    <span class="planet-name">Alpha145</span>
    <span class="planet-koords">[1:493:15]</span>
    </a>
    </div>
    <div class="smallplanet">
     
    <a href="index.php?page=overview&session=ad298d8dc16d&cp=35083903"
    title="|<B> [6:147:5]</B><BR>15.840km (52/163)<BR>23 °C à 63°C en moyenne"
    class="planetlink tipsStandard">
    <img class="planetPic" src="img/planets/normal_3_1.gif"/>
    <span class="planet-name">Demon3</span>
    <span class="planet-koords">[1:147:5]</span>
    </a>
    <a class="constructionIcon tipsStandard" title="|Mine de métal"><img src="img/icons/wrench.gif" height="12" width="12" /></a>
    </div>
    <div class="smallplanet">
     
    <a href="index.php?page=overview&session=ad298d8dc16d&cp=35083516"
    title="|<B> [3:76:4]</B><BR>14.760km (58/163)<BR>24 °C à 64°C en moyenne"
    class="planetlink tipsStandard">
    <img class="planetPic" src="img/planets/dry_1_1.gif"/>
    <span class="planet-name">AlphaTor</span>
    <span class="planet-koords">[2:76:4]</span>
    </a>
    </div>
    <div class="smallplanet">
    <a href="index.php?page=overview&session=ad298d8dc16d&cp=35083506"
    title="|<B> [4:71:5]</B><BR>17.520km (60/163)<BR>25 °C à 65°C en moyenne"
    class="planetlink tipsStandard">
     
    <img class="planetPic" src="img/planets/normal_7_1.gif"/>
    <span class="planet-name">Rocki</span>
    <span class="planet-koords">[4:71:5]</span>
    </a>
    </div>
    <div class="smallplanet">
    <a href="index.php?page=overview&session=ad298d8dc16d&cp=35081882"
    title="|<B> [4:71:5]</B><BR>17.040km (92/163)<BR>27 °C à 67°C en moyenne"
    class="planetlink tipsStandard">
    <img class="planetPic" src="img/planets/normal_7_1.gif"/>
     
    <span class="planet-name">Bioman</span>
    <span class="planet-koords">[1:71:5]</span>
    </a>
    <a class="constructionIcon tipsStandard" title="|Silo de missiles"><img src="img/icons/wrench.gif" height="12" width="12" /></a>
    </div>
    <div class="smallplanet">
    <a href="#"
    class="planetlink active tipsStandard"
    title="|<B> [2:55:7]</B><BR>12.800km (98/163)<BR>-3 °C à 37°C en moyenne">
    <img class="planetPic" src="img/planets/jungle_3_1.gif"/>
     
    <span class="planet-name">planète fuck</span>
    <span class="planet-koords">[1:55:7]</span>
    </a>
    <a class="constructionIcon tipsStandard" title="|Mine de métal"><img src="img/icons/wrench.gif" height="12" width="12" /></a>
    '''
     
    import re
     
    print(re.findall('<span class="planet-name">(.+?)</span>',uh))

    Ceci pour montrer qu'avec une expression rrégulière, le résultat s’obtient facilement, sans s’embarasser d’apprendre comment fonctionne une classe.
    Mais ce n’est pas toujours aussi simplissime.



    PS

    11 minutes pour faire ça ??!
    ouh ouh... ouh ouh

  5. #5
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Par défaut La suite
    Effectivement, l'expression régulière dans ce cas précis est plus simple. Mais si demain la forme de la valeur à récupérer change, il faudra adapater l'expression régulière. Et si demain on veut récupérer une autre valeur que celle qui correspond à planet-name, etc...
    Pour ce qui est de l'utilisation du JEditorPane, je n'ai plus le temps de l'examiner de près pour condenser une explication dont le but serait de s'en service uniquement pour extraire des valeurs. En effet, c'est avant tout un composant swing d'abord destiné à être affiché à l'écran. Le fait qu'il soit capable d'interprèter le code HTML n'a d'interret pour lui que d'afficher une page HTML comme dans un navigateur. S'en servir pour extraire des valeurs d'un fichier HTML n'est qu'une utilisation détournée de ses fonctionalités.
    A mon souvenir, il faut le solliciter pour récupérer un objet de type HtmlDocument qui met à disposition un jeu de méthode permettant "d'interroger" le document par rapport à son balisage. La difficulté tient dans son fonctionnement similaire à celui d'un flux (normal, par défaut je le rappelle c'est fait pour afficher des pages web qui sont des flux réseau) organisé comme une arborescence.
    Dés que j'ai plus de temps, je vous fait quelques lignes de code exemple....
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  6. #6
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Par défaut Un peu d'aide
    Tout d'abord, deux cas possibles. Le fichier HTML est manipulé localement en ouvrant directement ce dernier sous forme d'un objet File. Soit, il s'agit d'une réponse liée à une connexion HTTP via une URL.
    Dans les deux cas, pour le bon fonctionnement de cette solution, il faut aboutir en premier à un flux d'entré de type InputStream.
    Dans le cas d'un fichier ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileInputStream fluxEntree = new FileInputStream(new File("chemin complet vers votre fichier html"));
    Dans le cas d'une URL de type HTTP, ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    URL url = new URL("votre url HTTP");
    InputStream fluxEntree = url.openStream();
    Maintenant que nous tenons notre flux d'entrée, passons à JEditorPane.D'abord, on se fait une instance spécifique pour le HTML de JEditorPane :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JEditorPane extracteur = new JEditorPane("text/html", null);
    Ensuite, il faut instancier un objet de type HTMLDocument pour héberger le code HTML que l'on va lire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HTMLDocument documentHTML = new HTMLDocument();
    puis lire le flux et remplir notre documentHTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extracteur.read(fluxEntree, documentHTML);
    Maintenant, il suffit de raisonner avec notre documentHTML comme s'il s'agissait d'une arborescence de type JTree. Attention, je préciserai une chose essentielle, il est impératif que le code HTML soit CLEAN. Des balises non fermées ne gêneront pas l'affichage de la page, mais son interrogation s'en verra évidement fortement compromise. En effet, l'organisation interne du documentHTML est conditionné sous forme d'arborescences imbriquée. Le noeud HTML contient généralement les noeuds TITLE, BODY etc. Puis le noeud BODY qui ici nous interresse contient lui des eléments (les balisages qu'il encadre parmis lesquels nous allons rechercher la balise planet-name).
    Pour ce faire, nous allons commencer par pointer notre block d'eléments principale représenté par le jeux de balises <HTML>...</HTML> ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HTMLDocument.BlockElement racineHTML = (HTMLDocument.BlockElement)documentHTML.getDefaultRootElement();
    On en profite pour préparer deux objets HTMLDocument.BlockElement qui vont servir à récupérer la valeur contenue dans le balisage recherché :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HTMLDocument.BlockElement elementTrav = null, elementBody = null;
    Comme notre balisage planet-name se trouve dans le balisage <BODY>...</BODY>, on va d'abord récupérer le block d'elément BODY :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int positionBody = -1;
    for (int i = 0 ; i < racineHTML.getElementCount() ; i++) {
        if (racineHTML.getElement(i).getName().equalsIgnoreCase("body")) positionBody = i;
        }
    elementBody = (HTMLDocument.BlockElement)racineHTML.getElement(positionBody);
    Maintenant, il ne reste plus qu'à lire le bloque d'elements BODY et de ne s'interresser qu'à la balise planet-name : Attention, je préciserai ici qu'il devient necéssaire que cette dernière soit directement dans la balise BODY, pas dans un TABLE ou un FORM. Donc par rapport à votre code HTML, je ne sais pas si ça colle ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for (int i = 0 ; i < elementBody.getElementCount() ; i++) {
        if (elementBody.getElement(i).getName().equalsIgnoreCase("span")) {
            // Il ne reste plus qu'à récupérer la valeur de l'attribut class de la balise span, histoire de ne s'interresser qu'à planet-name.
            // Dans un premier temps, il faudra récupérer l'offset de départ et celui de fin du texte hors balisage en récupérant le span sous la forme d'un RunElement, et non d'un BlockElement.
            // On peut alors récupérer le texte contenu par la méthode getDocument().getText(offsetdebut, offsetfin - offsetdebut) du RunElement.
            }
        }
    Désolé pour la finalité, je vous laisse chercher un peu, je n'ai plus le temps de poursuivre, mais je penses que l'idée est interessante. Je préciserai aussi que je n'ai pas testé ce code, mes explications sont issue d'une utilisation personnelle de JEditorPane que j'ai fait pour extraire dans différents formats (xls, xml, csv, etc...) des tableaux de résultats sportifs contenus dans des pages HTML sous forme de <TABLE...>...</TABLE>.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  7. #7
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Par défaut
    Je viens de lire l'ensemble des solutions et je retiens que JEditoPane est adapté aà de l'extration dynamique html alors que Regex pour du code Html statique

    merci infinement pour vos reponses je vais pouvoir continuer mon programme.

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    xnutella, pourrais tu indiquer à quelle solution es-tu parvenu stp ?

    As tu modifié ton code ?
    As-tu écrit une solution avec JEditorPane ?




    Pour ma part, en cherchant dans la doc Java, j’ai lu ceci:

    public boolean find(): Attempts to find the next subsequence of the input sequence that matches the pattern.
    Perl uses the g flag to request a match that resumes where the last match left off. This functionality is provided implicitly by the Matcher class: Repeated invocations of the find method will resume where the last match left off, unless the matcher is reset.
    Comme je l’ai déjà évoqué , il me semble qu’il manque dans ton code une itération pour répéter la recherche du motif.
    Maintenant, je pense que cette itération doit consister à répéter l’exécution de find sur la chaîne HTML à analyser.

    J’aimerais bien voir quelle solution tu as finalement trouvée.









    Au passage,
    j’aimerais savoir s’il existe en Java une fonction du style find_all_matches() qui assure elle-même une itération dans une chaîne pour trouver tous les matches correspondant à une expression réguliére.

    Une fonction qui évite d’écrire soi-même l’itération du genre


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Pattern p = Pattern.compile("a*b");
    Matcher m = p.matcher("aaaaab");
    b = m.find()
    while b existe:
        faire quelque chose de b
        recommencer b = m.find()






    En outre, en lisant attentivement ton premier post , xnutella, je remarque que ta RE est écrite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String regex = "(net-name\"> )+([a-zA-Z0-9]+)(</span> )+";
    Cette RE ne permet pas à l’objet regex compilé de matcher avec
    <span class="planet-name">Demon3</span>
    Il n’y a a priori aucune raison de répéter (net-name\"> ) et surtout la présence d’un blanc s’oppose à ce que ça matche.





    Qu’est ce que tu entends par extraction dynamique versus extraction statique ??
    .
    .

  9. #9
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Par défaut Yô !
    Très honnêtement, je n'ai pas tout lu. Mais bravo.
    Je crois que l'on peut dire qu'il ne reste plus qu'à marier les deux, JEditorPane, et les regex....
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

Discussions similaires

  1. problème regex please
    Par mariafan dans le forum Langage
    Réponses: 11
    Dernier message: 03/05/2007, 17h35
  2. [RegEx] Problème regex et caractère \
    Par Kyom dans le forum Langage
    Réponses: 2
    Dernier message: 05/04/2007, 16h07
  3. Problème regex VSFTPD
    Par goldkey dans le forum Réseau
    Réponses: 1
    Dernier message: 19/01/2007, 17h55
  4. [RegEx] Problème regex url cliquable
    Par dorian53 dans le forum Langage
    Réponses: 5
    Dernier message: 16/11/2006, 19h17
  5. [RegEx] Problème Regex PCRE
    Par raptorman dans le forum Langage
    Réponses: 6
    Dernier message: 07/07/2006, 17h23

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