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

C# Discussion :

Récupérer contenu expression RegEx


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 134
    Par défaut Récupérer contenu expression RegEx
    Bonjour à tous,

    J'ai une chaine de caractère comme celle ci :

    <div style="padding: 2 0 2 0; display:inline; width: 80%;"><h3 class="SpProse">Date de sortie : <b><a href="/film/agenda_gen_date=09/07/2008.html" class="link1"> 09 Juillet 2008</a>

    ou je voudrais récupérer '09 Juillet 2008'. Comment faire? J'avais oensé au ReGex mais est la meilleur solution?

  2. #2
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut

    Moi je ne m'embeterais pas avec le regex
    Je ferais un indexof de "agenda_gen_date=" ou de "date="
    Ensuite un substring
    Ensuite DateTime.TryParse
    Et apres tu reformate comme tu veux

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 134
    Par défaut
    Il est vrai que vu comme ca, cela parrait plus simple. Mais imaginons que j'ai une chaine de cette forme

    <a class="link1" href="/personne/fichepersonne_gen_cpersonne=12344.html">Peter Berg</a></h3></div><

    et que je veuille récupérer 'Peter Berg', comment faire?

  4. #4
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut

    Il existe quelque classe dediée au parsage xml mais je n'en ai qu'une maigre expérience et elles sont bien lourde a mon avis pour ce que tu veux faire

    Tout depends bien sur de l'homogénéité de ce que tu dois traiter

    A priori je resterais sur l'idée d"un IndexOf </a>
    Et puis remonter le ">" precedent
    C'est un peu brico mais pas plus qu'un regexp a mon avis et sans doute plus lisible !

    Mais peut - etre qu'un specialiste html aura une meilleure suggestion

  5. #5
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string s = "<a class=\"link1\" href=\"/personne/fichepersonne_gen_cpersonne=12344.html\">Peter Berg</a></h3></div>";
                Match match = Regex.Match(s, "<a.*>(?<data>.*)</a>");
    match.Groups["data"].Value = Peter Berg

    Mieux vaut utiliser un regex que indexof!!

  6. #6
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Bonjour

    Les regular expression c'est certainement tres bien quand on maitrise bien la syntaxe !
    Dans le cas present (et apres avoir essayé) je ne vois toujours pas comment on récupere "Peter Berg" avec la syntaxe en exemple

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 134
    Par défaut
    Citation Envoyé par shwin Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string s = "<a class=\"link1\" href=\"/personne/fichepersonne_gen_cpersonne=12344.html\">Peter Berg</a></h3></div>";
                Match match = Regex.Match(s, "<a.*>(?<data>.*)</a>");
    match.Groups["data"].Value = Peter Berg

    Mieux vaut utiliser un regex que indexof!!
    Merci c'est ce qu'il me faut j'ai pas encore test car je suis au taf. En revanche j'aimerai bien comprendre pourquoi en indiquand (?<data>.*) dans l'expression, je vais récupérer Peter Berg.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/06/2020, 12h44
  2. Récupérer contenu d'une page HTML
    Par ArHacKnIdE dans le forum Langage
    Réponses: 9
    Dernier message: 07/11/2006, 08h56
  3. Récupérer contenu d'un fichier texte
    Par matt8-5 dans le forum Langage
    Réponses: 5
    Dernier message: 02/11/2006, 17h58
  4. [VBA-O]Récupérer contenu message
    Par Elstak dans le forum VBA Outlook
    Réponses: 14
    Dernier message: 17/08/2006, 09h34

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