OVH Cloud OVH Cloud

re et (

6 réponses
Avatar
JBB
Comment faire pour rechercher des parentheses avec re.

ex:
re.compile(" ???" ).findall(" blablbla (truc1) blablabla (truc2) ablabla")
>>>> [ 'truc1','truc2']

6 réponses

Avatar
Jerome
JBB wrote:
Comment faire pour rechercher des parentheses avec re.

ex:
re.compile(" ???" ).findall(" blablbla (truc1) blablabla (truc2) ablabla")
[ 'truc1','truc2']








re.compile("(.*?)").findall(" blablbla (truc1) blablabla (truc2) ablabla")
[ 'truc1','truc2']





Jerome





Avatar
Jerome
Jerome wrote:
JBB wrote:

Comment faire pour rechercher des parentheses avec re.

ex:
re.compile(" ???" ).findall(" blablbla (truc1) blablabla (truc2)
ablabla")
[ 'truc1','truc2']








re.compile("(.*?)").findall(" blablbla (truc1) blablabla (truc2)
ablabla")
[ 'truc1','truc2']





Jerome


oups, j'en ai oublié un bout

re.compile("((.*?))").findall(" blablbla (truc1) blablabla (truc2)
ablabla")






Avatar
Do Re Mi chel La Si Do
Bonjour !


Je profite de l'exemple, pour demander une explication.

print re.compile("((.*?))").findall(" blablbla (truc1) blablabla
(truc2) ablabla")
donne ['truc1','truc2']


Qu'est ce qui fait que l'on n'obtient pas (aussi) :
['truc1) blablabla (truc2']
et / ou
['truc1','truc2','truc1) blablabla (truc2']


Réponses qui ne seraient pas fausses.


@+

Michel Claveau
Avatar
tiissa
print re.compile("((.*?))").findall(" blablbla (truc1) blablabla
(truc2) ablabla")
donne ['truc1','truc2']

Qu'est ce qui fait que l'on n'obtient pas (aussi) :
['truc1) blablabla (truc2']
et / ou
['truc1','truc2','truc1) blablabla (truc2']


C'est l'utilisation de la version non gloutonne "*?" du qualifieur "*"
[1].
"*" consomme le plus de texte possible et "*?" le moins possible.


[1] http://docs.python.org/lib/re-syntax.html

Avatar
Do Re Mi chel La Si Do
Salut !


Merci ! Je pensais bien, qu'il y avait une histoire de glouton.

Mais, je préfère ces explications-ci :
http://hectorvictor.free.fr/img/jaquettes/leglouton.jpg
http://solene.ledantec.free.fr/mammif2/glouton.JPG


Question subsidiaire, si l'on veut avoir à la fois la réponse "glouton", et
la réponse "anorexie", est-on obligé de faire deux appels ? Ou, y a-t'il un
moyen de tout avoir d'un coup ?


@-salutations

Michel Claveau
Avatar
Paul Gaborit
À (at) Thu, 6 Oct 2005 16:33:55 +0200,
"Do Re Mi chel La Si Do" écrivait (wrote):
Question subsidiaire, si l'on veut avoir à la fois la réponse "glouton", et
la réponse "anorexie", est-on obligé de faire deux appels ? Ou, y a-t'il un
moyen de tout avoir d'un coup ?


Il faut faire plusieurs appels (et faire le tri puisqu'il peut y avoir
ensuite des doublons). Par définition, une expression régulière n'a au
plus qu'un seul moyen d'être reconnu à partir d'un point de départ
donné.

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>