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.search, aide sur regex


Sujet :

Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 116
    Points : 43
    Points
    43
    Par défaut re.search, aide sur regex
    B'jour!

    Je dois étendre une classe python qui fait du parsing, mais pour cela je dois personnaliser la regexp donnée pour mon site.


    C'est une question assez bête, mais j'ai commencé python hier, et ça fait une heure que je fais des essais qui me rendent "None" (pas de matchs), raaaaaah

    Je veux récupérer login avec un m.group(1) ( obligatoire, c'est comme ça que la classe du dessus traite la regex ), avec m = re.search ('''???????''', '''(<tt><a href="https://truc.bidule.fr/machin/login/">login</a></tt>)''')

    Je dois remplacer les ??????? par quoi pour récupérer login ?

    j'ai coupé le html pour raccourcir, mais ce morceau se trouve évidemment dans une grosse page html

    Merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 116
    Points : 43
    Points
    43
    Par défaut
    /autorésolution

    j'avais pas tout compris comme ça marchait...

    Un test avec '''<tt><a href="\S*">([^<]*)</a></tt>''' m'a rendu ce que je voulais

  3. #3
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Salut hydex,


    Ta RE interdit la présence du caractère ’<’ dans la chaîne du login.

    Or je pense que le genre de répétition d’un login ou d’un mot de passe tel que celui qui se trouve dans ton exemple et que j’ai déjà observé est conçu pour permettre la plus grande liberté dans le choix du login ou du mot de passe. Avec une telle répétition, le système destiné à identifier le login ou le mot de passe peut le faire en présence de n’importe quelle chaîne tarabiscotée. C’est du moins la raison qui explique à mon avis une telle répétition.

    Puisqu'elle est prévue pour d'après moi, dans une RE, il faut tenir compte de cette répétition et l'utiliser.


    Avec la RE suivante, on peut détecter un login contenant ’<’ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    import re
     
    m =re.search ('''<tt><a href="\S*">([^<]*)</a></tt>''',
                  '''(<tt><a href="https://truc.bidule.fr/'''
                  '''machin/log<in/">log<in</a></tt>)''')
    print m
     
    m =re.search ('''<tt><a href="\S*(\S+)/">\\1</a></tt>''',
                  '''(<tt><a href="https://truc.bidule.fr/'''
                  '''machin/log<in/">log<in</a></tt>)''')
    print m
    None
    <_sre.SRE_Match object at 0x010AEEE0>


    On peut même détecter un motif vicieux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import re
     
    m =re.search ('''<tt><a href="\S*(\S+)/">\\1</a></tt>''',
                  '''(<tt><a href="https://truc.bidule.fr/'''
                  '''machin/robin/">des/">bois/">robin/">des/">bois</a></tt>)''')
    print m.group(1)
    robin/">des/">bois

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

Discussions similaires

  1. Aide sur Regex
    Par Caponord38 dans le forum Langage
    Réponses: 2
    Dernier message: 29/02/2008, 20h49
  2. Aide sur signification de Regex
    Par mourbare dans le forum Langage
    Réponses: 3
    Dernier message: 22/02/2008, 10h19
  3. Aide sur les regex
    Par etranger dans le forum Langage
    Réponses: 12
    Dernier message: 30/08/2006, 22h32
  4. [Regex] besoin d'aide sur des motifs
    Par Oluha dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 25/11/2005, 11h23
  5. une aide sur un regex svp :)
    Par hansaplast dans le forum Langage
    Réponses: 2
    Dernier message: 19/10/2005, 11h22

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