Python - 1 ligne de code
Fermé
LsBender
-
20 juil. 2012 à 11:31
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 - 20 juil. 2012 à 21:17
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 - 20 juil. 2012 à 21:17
A voir également:
- Python - 1 ligne de code
- Site de vente en ligne particulier - Guide
- Partage de photos en ligne - Guide
- Code ascii de a - Guide
- Aller à la ligne excel - Guide
- Code puk bloqué - Guide
1 réponse
heyquem
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
131
20 juil. 2012 à 21:17
20 juil. 2012 à 21:17
Elle crée la représentation compilée d'un motif d'expression régulière.
Ce motif permet d'attraper 7 portions de chaînes: la première et la seconde doivent être séparées par un tiret dans le texte, les 5 autres doivent être chacune située entre deux caractères '|'
Etant donné l'absence de '?' après toutes les étoiles, les 5 chaînes entre caractères '|' sont les plus au bout vers la fin du texte analysé.
De même , le tiret qui sépare les deux premières portions est celui le plus vers la fin du texte, les conditions sur les autres portions devant être respectées.
L'écriture (?P....) permet de définir un groupe nommé, c'est à dire qu'on pourra appeler la portion de chaîne captée par le group en question par un nom au lieu de seulement par un numéro. Il faut lire la doc.
Amuse toi à mettre des '?' après les étoiles et observe les modifications de résultat.
Sera plus clair avec des exmples:
print
print log.search(ss).group('description')</code>
donne
Ce motif permet d'attraper 7 portions de chaînes: la première et la seconde doivent être séparées par un tiret dans le texte, les 5 autres doivent être chacune située entre deux caractères '|'
Etant donné l'absence de '?' après toutes les étoiles, les 5 chaînes entre caractères '|' sont les plus au bout vers la fin du texte analysé.
De même , le tiret qui sépare les deux premières portions est celui le plus vers la fin du texte, les conditions sur les autres portions devant être respectées.
L'écriture (?P....) permet de définir un groupe nommé, c'est à dire qu'on pourra appeler la portion de chaîne captée par le group en question par un nom au lieu de seulement par un numéro. Il faut lire la doc.
Amuse toi à mettre des '?' après les étoiles et observe les modifications de résultat.
Sera plus clair avec des exmples:
import re log = re.compile("(?P<date>.*)-(?P<time>.*)\|" "(?P<sourcefile>.*)\|" "(?P<linenb>.*)\|" "(?P<swmodule>.*)\|" "(?P<tracelevel>.*)\|" "(?P<description>.*)\|") ss = '12345|4578|54127|abcd-ef-gh|sourci|linini|modudu|trac|descriptu|finini' print log.search(ss).groups() ss = '12345|4578|54127|abcd-ef-gh|sourci|linini|modu-du|trac|descr-iptu|ALAFIN' print log.search(ss).groups()
print log.search(ss).group('description')</code>
donne
('12345|4578|54127|abcd-ef', 'gh', 'sourci', 'linini', 'modudu', 'trac', 'descriptu') ('12345|4578|54127|abcd-ef', 'gh', 'sourci', 'linini', 'modu-du', 'trac', 'descr-iptu') descr-iptu