Expression régulière en python
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
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
- Expression écrite cm1 cm2 télécharger gratuit - Télécharger - Éducatifs
- Microsoft expression encoder - Télécharger - Divers Utilitaires
- Ce programme est écrit en python ✓ - Forum Python
- Python pix ✓ - Forum Python
3 réponses
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.