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

Python Discussion :

[re] Extraire plusieurs morceaux d'une chaine


Sujet :

Python

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2
    Par défaut [re] Extraire plusieurs morceaux d'une chaine
    Bonjour à tous,

    Je débute en python et là j'apprend les expressions régulières.

    J'ai du mal à trouver la bonne manière pour faire ceci:

    Voici la chaine:

    <select tabindex="1" name='Uni' class="eingabe" style="width:150px;">
    <option value="">Sélectionner l'univers...</option><option value="ogame312.de">1. univers</option><option value="ogame290.de">2. univers</option><option value="ogame199.de">3. univers</option><option value="ogame235.de">4. univers</option><option value="ogame333.de">5. univers</option><option value="ogame200.de">6. univers</option><option value="ogame316.de">7. univers</option><option value="ogame259.de">8. univers</option><option value="ogame124.de">9. univers</option><option value="ogame250.de">10. univers</option><option value="ogame251.de">11. univers</option><option value="ogame190.de">12. univers</option><option value="game1029.de">13. univers</option><option value="ogame317.de">14. univers</option><option value="ogame144.de">15. univers</option><option value="ogame170.de">16. univers</option><option value="ogame181.de">17. univers</option><option value="ogame186.de">18. univers</option><option value="ogame193.de">19. univers</option><option value="ogame221.de">20. univers</option><option value="ogame208.de">21. univers</option><option value="ogame140.de">22. univers</option><option value="ogame123.de">23. univers</option><option value="ogame286.de">24. univers</option><option value="ogame298.de">25. univers</option><option value="ogame240.de">26. univers</option><option value="ogame213.de">27. univers</option><option value="ogame447.de">28. univers</option><option value="ogame135.de">29. univers</option><option value="ogame338.de">30. univers</option><option value="ogame311.de">31. univers</option><option value="ogame216.de">32. univers</option><option value="ogame388.de">33. univers</option><option value="game1019.de">34. univers</option><option value="ogame380.de">35. univers</option><option value="s026.gfsrv.net">36. univers</option><option value="game1027.de">37. univers</option><option value="ogame391.de">38. univers</option><option value="ogame449.de">39. univers</option><option value="ogame444.de">40. univers</option><option value="ogame464.de">41. univers</option><option value="ogame474.de">42. univers</option>

    </select>
    Donc j'aimerais récupérer dans une liste, la valeur de chaque attribut value , en sachant que le nombre de balise option peu varier.

    Que dois-je utiliser comme méthode ? search ? findall ?
    Comment procéderiez-vous ?

    Merci ;-)

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 89
    Par défaut
    Tu as le module re pour ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    import re
    exp = r"""(o\w+?.de)"""
    matchstr=""" ta chaine """
    match_obj = re.findall(exp, matchstr)
    print match_obj
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ['ogame312.de', 'ogame290.de', 'ogame199.de', 'ogame235.de', etc...]
    findall teconstruit directement la liste de valeurs
    Sinon le plus sympa pour tester des regexp c'est le logiciel kodos
    @++

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2
    Par défaut
    Merci kodos est bien pratique.

    Oki je crois avoir compris, la différence entre findall et search

    Ba je vais tester tout ça, j'aurais certainement d'autres questions plustard. Merci

  4. #4
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    Sinon, pour faire ce que tu veux faire, tu peux utiliser un parseur.

    par exemple Beautiful Soup qui est un parseur HTML/XML et qui est facile à utiliser.

    http://www.crummy.com/software/BeautifulSoup/


    voila

  5. #5
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    au fait j'espere que tu as bien lu les reglement d'ogame.

Discussions similaires

  1. [AC-2007] Extraire plusieurs valeurs dans une chaine de caractères
    Par benny67 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 08/10/2011, 20h09
  2. Extraire pls morceaux d'une chaine dans des variables!
    Par baillador dans le forum Langage
    Réponses: 10
    Dernier message: 05/04/2006, 13h21
  3. extraire le caratere d'une chaine
    Par keny dans le forum MFC
    Réponses: 2
    Dernier message: 06/02/2004, 16h30
  4. [LG]Extraire des nombres d'une chaine
    Par audreym31 dans le forum Langage
    Réponses: 4
    Dernier message: 18/01/2004, 21h24
  5. Réponses: 9
    Dernier message: 17/01/2003, 11h45

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