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 :

recherche d'expression régulière - problème


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2011
    Messages : 4
    Par défaut recherche d'expression régulière - problème
    Bonjour,
    Je suis débutante et j'ai un problème de recherche d'expression régulière...
    Quelqu'un saurait me dire ce qui cloche ?
    Merci !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    import re
    import urllib
    i=0
    tdg = urllib.urlopen("http://www.tdg.ch/")
    while(i==0):
    	lineTDG = tdg.readlines()
    	if re.search(r 'h1_frontpage', lineTDG):
    		print lineTDG
    		i+=1

  2. #2
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2011
    Messages : 4
    Par défaut
    J'ai aussi essayé comme cela. Le problème est (selon la console) dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if re.search(r 'h1_frontpage', line)
    au niveau du 'h1_frontpage'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    import re
    import urllib
    i=0
    tdg = urllib.urlopen("http://www.tdg.ch/")
    for line in tdg.readlines():
    	if re.search(r 'h1_frontpage', line):
    		print line

  3. #3
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    Pas vraiment au niveau de 'h1_frontpage'
    if re.search(r 'h1_frontpage', line)

    @+

    Edit: Que cela soit True ou un objet / false ou None if fonctionne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for line in tdg.readlines():
        if re.search('h1_frontpage', line):
            print line

  4. #4
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Le problème est que re.search ne renvoie pas un booléen, mais:
    - None en cas d'échec
    - un "MatchObject" en cas de réussite (=motif trouvé) avec toutes les caractéristiques de ce qui a été trouvé (voir manuel)

    Donc, quand on veut se contenter d'un résultat booléen de réussite, il faut faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if re.search(motif, texte)!=None:

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2011
    Messages : 4
    Par défaut
    Ok merci bcp. Ca marche avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import re
    import urllib
    i=0
    tdg = urllib.urlopen("http://www.tdg.ch/")
    for line in tdg.readlines():
    	line.split("div")
    	if re.search(r"h1_frontpage", line)!=None:
    		print line

  6. #6
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Re,

    Autre chose:
    Je ne vois pas l’intérêt de re ici. in (if "h1_frontpage" in line) est largement suffisant.
    De plus il est préférable d'utiliser in lorsque c'est possible.

    @+

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2011
    Messages : 4
    Par défaut
    Oui en effet. Je ne savais pas que le "in" existait en python. Merci !

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 25
    Par défaut
    pour information , le r dans une regexp signifie seulement qu'on traite le \ comme un caractere a part entière. donc
    "\n" signifie un retour a la ligne
    r"\n" signifie le caractere "\" suivis d'un "n".
    on s'en sert dans les regexp du faite que le \ a sa propre sinification en regexp.

    un petit tag résolue

Discussions similaires

  1. Comment rechercher une Expression réguliére
    Par Jean-Seba dans le forum Dreamweaver
    Réponses: 3
    Dernier message: 21/07/2011, 12h28
  2. Réponses: 1
    Dernier message: 23/06/2011, 18h34
  3. recherche par expression régulière
    Par guiyomh dans le forum C++
    Réponses: 2
    Dernier message: 29/06/2008, 12h14
  4. [RegEx] Expressions régulières : problème avec e-mail
    Par webrider dans le forum Langage
    Réponses: 7
    Dernier message: 28/08/2006, 10h30
  5. Recherche une expression régulière
    Par matt1212 dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 23/03/2006, 00h25

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