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 :

Problème d'expression régulière


Sujet :

Python

  1. #1
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Par défaut Problème d'expression régulière
    Bonjour,

    A titre d'indication j'ai commencé le Python hier soir

    Vraiment très très sympa ce langage, le seul problème c'est les expressions régulières, c'est un peu cauchemardesque

    J'en arrive à mon problème. Je suis en train de faire un jeu de programmation python sur internet :

    http://www.pythonchallenge.com/

    J'en suis à l'épreuve 4. On dispose d'un lien de ce type (url légèrement changé ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://www.pythonchallenge.com/pc/def/xxx.php?nothing=12345
    quand on arrive sur cette page, on obtient ceci :

    and the next nothing is 92512
    il faut ensuite concaténer le chiffre et l'url :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://www.pythonchallenge.com/pc/def/xxx.php?nothing=92512
    pour l'instant je ne sais pas où cela s'arrête...

    voilà mon code actuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    import urllib2
    import re
     
    urlist = ['http://www.pythonchallenge.com/pc/def/xxx.php?nothing=', '12345']
     
    while urlist[1] != 0: #je ne connais pas la condition d'arrêt...
        for ligne in urllib2.urlopen(urlist[0] + urlist[1]):
            if "nothing" in ligne:
                print ligne
                urlist[1] = "".join(re.findall('[\d]', ligne)) # [\d] = [0-9]
                print urlist[1]
    voilà le retour après la première itération :

    and the next nothing is 92512
    92512
    ca fonctionne pendant un certains temps mais arrive un moment ou j'ai ceci :

    text. One example is 61067. Look only for the next nothing and the next nothing is 53522
    et print urlist[1] me retourne : 6106753522 (normal me direz vous )

    Quelle expression puis-je écrire pour que urlist[1] vale uniquement le chiffre qui se trouve après "and the next nothing is " ?

    j'ai vu un "opérateur" \Z qui fonctionne pour la fin d'une chaine mais impossible de m'en servir correctement...

    Merci à vous

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 37
    Par défaut
    yop, un moment que j'ai pas touché aux expression regulirer, mais il me semble que le module "re" n est plus utilisé, utilise plutot "sre"

    je te laisse jeter un oeil a la doc

    Ensuite , pour ton histoire, pourquoi ne pas chercher un nombre dans ta chaine plutot que de chercher la fin de chaine.
    Un truc genre [0-9]+

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    >>> pattern = '[0-9]+'
    >>> monstring = "and the next nothing is 92512"
    >>>sre.findall(pattern,monstring)
    ['92512']
    Enfin un truc du genre quoi

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Par défaut
    Essaie avec ça comme regex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    r"and the next nothing is (\d+)"
    Et pense à afficher les messages (je l'ai fait, je sais ce qu'il y a à faire)

  4. #4
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Par défaut
    Merci bien pour votre aide

    Je viens de passer au niveau suivant

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

Discussions similaires

  1. Problème d'expressions régulières
    Par AnkyFive dans le forum Langage
    Réponses: 21
    Dernier message: 20/07/2006, 08h03
  2. petit problème d'expression régulière
    Par stoyak dans le forum Langage
    Réponses: 5
    Dernier message: 16/05/2006, 11h20
  3. [regexp] petit problème d'expression régulière
    Par LE NEINDRE dans le forum Langage
    Réponses: 14
    Dernier message: 16/12/2005, 10h33
  4. Problème d'expression régulière
    Par SiM07 dans le forum Langage
    Réponses: 2
    Dernier message: 02/12/2005, 17h57
  5. Problème d'expression régulière
    Par Pymm dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 11/10/2005, 15h04

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