Vous êtes ici : Accueil / Forums & ML / Forums Python / Forum général Python / extraction d'une partie d'une chaine

extraction d'une partie d'une chaine

Remonter à Forum général Python
  • extraction d'une partie d'une chaine

    Envoyé par berserk le 3 Mars 2006 à 21:36
    voici un extrait d'une ligne d'un fichier text:

    align="top">Accueil</td

    j'aimerai juste recuperer <a href="http://WWW.lesite">http://WWW.lesite</a>

    si quelqu'un a la solution ou quelques chose qui pourrai me guider.
    merci
    • Re: extraction d'une partie d'une chaine

      Envoyé par ulukyn le 3 Mars 2006 à 21:56
      Avec des expression régulières (regexp, module python re) tu peux récupérer une partie d'une chaîne de caractères.

      Il faut que tu puisse isoler http://www.lesite
      si c'est l'url du lien Accueil voici une possibilité:

      import re

      pat = re.compile('')
      result = pat.match(text)

      Si les balises title et class changent ou contiennent des valeurs différentes il faut modifier la regexp ou l'adapter à plus de cas.

      Si tu veux récupérer plusieurs parties utilise pat.findall(text) au lieu de pat.match(text)
      • Re: extraction d'une partie d'une chaine

        Envoyé par berserk le 3 Mars 2006 à 22:20
        ok mais pour afficher ce qu'il recupere je fait juste:

        print result

        et idle me dit NameError: name 'text' is not defined

        désolé j'ai beaucoup de question mais je debute, merci
    • Re: extraction d'une partie d'une chaine

      Envoyé par ulukyn le 4 Mars 2006 à 21:45
      Heu... dans mon exemple 'text' doit être remplacer par le contenu de ton fichier.

      Si ton fichier se nomme : "fichier.txt" tu doit d'abord lire son contenu:

      f = open("fichier.txt") #remplace fichier.txt par le nom de ton fichier
      text = f.read()
      f.close()

      text contient alors les données du fichier
      tu peux ainsi utiliser le script précedent.

      Au final:

      import re

      f = open("fichier.txt")
      text = f.read()
      f.close()

      pat = re.compile('')
      result = pat.match(text)
      print result
      • Re: extraction d'une partie d'une chaine

        Envoyé par berserk le 5 Mars 2006 à 13:24
        je comprend pas je fais juste un copier collé, je remplace le nom de fichier et sa marche pas sa retourne: none

        es ce que tu as essayé ton prog?

    • Re: extraction d'une partie d'une chaine

      Envoyé par zen68 le 10 Mars 2006 à 14:12
      match(..) recherche au debut de string. Plutot il faut utiliser search() qui recherche sur l'ensemble de string. Donc
      ...
      pat = re.compile('\"http://www.lesite\"')
      result = pat.search(text)
      print result
      print result.group(0)
Rendu par Ploneboard