Expression régulière en python
Résolu/Fermé
Bonjour, voilà j'aimerait utiliser une expression régulière qui me permettait de récupérer le contenu de <script language="javascript"></script> en python !!
je ne comprend néanmoins pas grand chose au regex en python si vous pouviez m'aider !!
merci !!
je ne comprend néanmoins pas grand chose au regex en python si vous pouviez m'aider !!
merci !!
A voir également:
- Expression régulière en python
- Citizen code python avis - Accueil - Outils
- Python \r ✓ - Forum Python
- Ce programme est écrit en python ✓ - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
3 réponses
heyquem
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
131
Modifié par heyquem le 23/12/2010 à 14:47
Modifié par heyquem le 23/12/2010 à 14:47
Bonjour,
Eh bien la RE '<script language="javascript">(.*?)</script>' devrait faire l'affaire.
Elle capture ce qui est entre
'<script language="javascript">'
et
'</script>'
dans un groupe (le groupe 1)
Tu fais
- soit
pour récupérer la première occurence dans la chaine ch
si tu n'as à le faire qu'un nombre très limité de fois dans un programme
- ou
si tu dois répéter plusieurs fois une telle recherche
- soit
pour extraire toutes les occurences d'un texte
- ou
pour extraire plusieurs fois toutes les occurences de différents textes
- soit
si tu veux faire des traitements à chaque occurence rencontrée
Le point d'interrogation dans (.*?) est très important: c'est lui qui limite la gloutonnerie du moteur de regex: grâce à la présence de ce '?' , le moteur de regex s'arrête à la première rencontre de '</script>' après '<script language="javascript">' ,
sinon le groupe capturerait toute la portion de texte située entre un '<script language="javascript">' et le DERNIER '</script>' rencontré après, même si dedans cette portion il ya des '<script language="javascript">' et des '</script>' rencontrés.
Eh bien la RE '<script language="javascript">(.*?)</script>' devrait faire l'affaire.
Elle capture ce qui est entre
'<script language="javascript">'
et
'</script>'
dans un groupe (le groupe 1)
Tu fais
- soit
re.search('<script language="javascript">(.*?)</script>',ch).group(1)
pour récupérer la première occurence dans la chaine ch
si tu n'as à le faire qu'un nombre très limité de fois dans un programme
- ou
pat = re.compile('<script language="javascript">(.*?)</script>') pat.search(ch).group(1)
si tu dois répéter plusieurs fois une telle recherche
- soit
re.findall('<script language="javascript">(.*?)</script>',ch)
pour extraire toutes les occurences d'un texte
- ou
pat = re.compile('<script language="javascript">(.*?)</script>') pat.findall(ch)
pour extraire plusieurs fois toutes les occurences de différents textes
- soit
pat = re.compile('<script language="javascript">(.*?)</script>') for match in pat.finditer(ch): x = match.group(1) traitement à partir de x
si tu veux faire des traitements à chaque occurence rencontrée
Le point d'interrogation dans (.*?) est très important: c'est lui qui limite la gloutonnerie du moteur de regex: grâce à la présence de ce '?' , le moteur de regex s'arrête à la première rencontre de '</script>' après '<script language="javascript">' ,
sinon le groupe capturerait toute la portion de texte située entre un '<script language="javascript">' et le DERNIER '</script>' rencontré après, même si dedans cette portion il ya des '<script language="javascript">' et des '</script>' rencontrés.
Utilisateur anonyme
23 déc. 2010 à 13:21
23 déc. 2010 à 13:21
merci pour ton post complet !!
heyquem
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
131
23 déc. 2010 à 14:53
23 déc. 2010 à 14:53
De rien.
J'ai regardé ton profil. J'ai l'impression que tu t'es mis à Python depuis peu. C'est pour ajouter une corde à ton arc ou pour remplacer plus ou moins Java ?
J'ai regardé ton profil. J'ai l'impression que tu t'es mis à Python depuis peu. C'est pour ajouter une corde à ton arc ou pour remplacer plus ou moins Java ?
Utilisateur anonyme
26 déc. 2010 à 17:12
26 déc. 2010 à 17:12
nan j'avait déja quelque connaissance en python mais j'ai envie de m'améliorer !!
Je maitrise déjà le c/c++ / javascript/php en partit est html/css
Je maitrise déjà le c/c++ / javascript/php en partit est html/css