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

VB.NET Discussion :

Pb splitt résultat Regex [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 258
    Par défaut Pb splitt résultat Regex
    Bonjour,
    J'aimerais récupérer des informations sur une page html, et le N° de lot sur Ebay pour être plus précis
    Le code source à récupérer est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <span class="vi-xs vi-lk">Numéro de l'objet : 320520582643</span>
    J'ai donc potassé les fonctions Regex et abouti à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim pattern As String = "\bNuméro de l'objet.*\b:\b.*\d{12}"
    pour extraire le code à 12 chiffres
    J'arrive à obtenir la chaine complète contenant "Numéro de l'objet : 320520582643..." mais pas à en extraire le N° seul car pour le splitter je dois définir des groupes, et la je cafouille avec les ",..
    Mon code
    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
     Dim webRequest As System.Net.WebRequest = HttpWebRequest.Create(WebBrowser1.Url)
            Dim webResponse As System.Net.WebResponse = webRequest.GetResponse()
            Dim sr As System.IO.StreamReader = New System.IO.StreamReader(webResponse.GetResponseStream())
     
            Dim rssourcecode As String = sr.ReadToEnd
     
     
     
            'chaine à trouver : <span class="vi-xs vi-lk">Numéro de l'objet : 320520582643</span>
            'Dim pattern As String = txt_Pattern2.Text.ToString
            Dim pattern As String = "\bNuméro de l'objet.*\b:\b.*\d{12}"
     
            Dim r As New System.Text.RegularExpressions.Regex(Pattern, RegexOptions.Multiline Or RegexOptions.IgnoreCase)
            Dim matches As MatchCollection = r.Matches(rssourcecode)
     
            If matches.Count > 0 Then
                MessageBox.Show(matches.Count.ToString & "  Occurence(s) trouvée(s) !")
            Else
                MessageBox.Show("Aucune occurence trouvée !")
            End If
     
            For Each itemcode As Match In matches
                ListBox1.Items.Add(itemcode.Value)
     
                ' ListBox1.Items.Add(itemcode.Value.Split(CChar("""")).GetValue(1))
     
            Next
    Par avance merci
    Bertrand

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 258
    Par défaut
    re
    En fait j'ai trouvé : j'ai cherché pendant des heures à mettre les " ou il faut, et c'était des () qu'il fallait !!
    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
            Dim webRequest As System.Net.WebRequest = HttpWebRequest.Create(WebBrowser1.Url)
            Dim webResponse As System.Net.WebResponse = webRequest.GetResponse()
            Dim sr As System.IO.StreamReader = New System.IO.StreamReader(webResponse.GetResponseStream())
     
            Dim rssourcecode As String = sr.ReadToEnd
     
            Dim pattern As String = "Numéro de l'objet.*\b:\b.*(\d{12})"
     
            ' Invoke the Match method.
            Dim m As Match = Regex.Match(rssourcecode, pattern, RegexOptions.IgnoreCase)
     
            ' If successful, write the group.
            If (m.Success) Then
                txt_NoLot.Text = m.Groups(1).Value
            Else
                MessageBox.Show("Aucune occurence trouvée ! ")
     
            End If
    Et ça marche !
    Bertrand

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 258
    Par défaut
    Petite correction au regex (ne marchait pas sur tous les lots"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim pattern As String = "(>Numéro de l'objet\s:\s)(\d{12})"
    Corrigé avec le freeware : Expresso !
    Bertrand

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. afficher les résultats d'une regex
    Par devets dans le forum Programmation et administration système
    Réponses: 3
    Dernier message: 25/07/2014, 04h53
  2. Regex aucun résultat
    Par Miistik dans le forum VBScript
    Réponses: 0
    Dernier message: 23/01/2013, 12h04
  3. RegEx en Javascript : résultats aléatoires sous Firefox et Opera
    Par fblanchard dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 28/04/2008, 11h02
  4. résultat de test avec regex incompréhensible
    Par waldo2188 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/09/2007, 17h31
  5. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26

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