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 :

probleme de regex [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2012
    Messages : 40
    Par défaut probleme de regex
    Bonjour,
    je sais qu'il y a pas de cours ou d'exemple de regex sur le forum mais j'ai un problème dans mon parsing
    voici la source
    <strong class="number has-tooltip cursor-pointer">
    143,10&nbsp;€
    </strong>

    le rouge c'est ce que je cherche à récupérer

    j'ai essayé différente regex mais rien ne marche

    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
            Dim r As New Regex("pointer"">([\w\s]+)&nbsp")
     
            If r.IsMatch(strpage) Then
     
                Dim m As Match
     
                For Each m In r.Matches(strpage)
     
                    Dim Result As String
     
                    Result = m.Groups(1).ToString
     
            If m.Success Then
                MessageBox.Show("Résultat: " + m.Groups(1).Value)
     
            End If
     
                Next
    end if
    quand je test juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            Dim r As New Regex("pointer"">([\w\s]+)&nbsp")
            Dim m As Match
            m = r.Match("cursor-pointer"">149,00&nbsp")
     
            If m.Success Then
                MessageBox.Show("Résultat: " + m.Groups(1).Value)
     
            End If
    merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    je sais qu'il y a pas de cours ou d'exemple de regex sur le forum
    Sur le forum, non... mais sur le site, oui
    http://stormimon.developpez.com/dotn...ns-regulieres/

    Essaie avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Dim pattern = "<strong class=""number has-tooltip cursor-pointer"">" _
                    & "([\d,]+)&nbsp;€" _
                    & "</strong>"
        Dim input = "<strong class=""number has-tooltip cursor-pointer"">" _
                    & "143,10&nbsp;€" _
                    & "</strong>"
        Dim m As Match = Regex.Match(input, pattern)
        Dim value As String = m.Groups(1).Value
    Cela dit les regex ne sont pas vraiment le meilleur moyen de parser du HTML... il vaudrait mieux utiliser un outil comme HTML Agility Pack

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2012
    Messages : 40
    Par défaut
    Oops pardon je voulais dire plein de cours ou d'exemple

    Et en ce qui concerne ton code ca marche juste sur l 'exemple mais si je lance la lecture sur toute la source il me trouve rien le même problème que j'ai avec mon 2e code ou je me suis tromper par contre c'etais (.*) ou ([\w\s\S\r\n]+) qui marche,
    et encore quand je lance avec ([\w\s\S\r\n]+) il me trouve qu'un resultat et c'est tout la page a partir du premier "strong class=""number has-tooltip cursor-pointer"

    et pour ce qui est du htmlagilitypack j'ai pas trop comprit comment ca marchais
    bien que j'ai vu ou tu donnée un exemple de code sur
    http://www.developpez.net/forums/d11...x-mal-formule/
    je vois pas trop comment l'adapté a mon cas

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Un exemple avec Html Agility Pack pour ton cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim doc = New HtmlDocument()
    Dim wc = New WebClient()
    Using stream = wc.OpenRead(urlDeLaPage)
    	doc.Load(stream)
    End Using
    Dim tags = doc.Descendants("strong").Where(Function(t) t.GetAttributeValue("class", Nothing) = "number has-tooltip cursor-pointer")
    Dim values = tags.Select(Function(t) t.InnerText)

  5. #5
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2012
    Messages : 40
    Par défaut
    ça me met :
    Erreur 1:'Descendants' n'est pas un membre de 'HtmlAgilityPack.HtmlDocument'

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par cha23 Voir le message
    ça me met :
    Erreur 1:'Descendants' n'est pas un membre de 'HtmlAgilityPack.HtmlDocument'
    Ah oui j'ai oublié un bout... en fait c'est ... doc.DocumentNode.Descendants(...

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

Discussions similaires

  1. Probleme avec REGEX sous IE
    Par Death83 dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 18/07/2006, 20h02
  2. [RegEx] Probleme de Regex
    Par keil dans le forum Langage
    Réponses: 2
    Dernier message: 18/07/2006, 14h14
  3. probleme de regex! (debutant)
    Par kriskikout dans le forum Langage
    Réponses: 7
    Dernier message: 25/06/2006, 23h00
  4. [langage] autre probleme de regex
    Par Ludo167 dans le forum Langage
    Réponses: 3
    Dernier message: 18/08/2004, 17h01
  5. [langage] probleme de regex
    Par Ludo167 dans le forum Langage
    Réponses: 4
    Dernier message: 18/08/2004, 15h36

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