Salut Yannick,

Tout d'abord, un grand merci à JF et Yannick pour leur explication qui devrait éclairer la lanterne de ceux qui se posaient cette même question.

Une autre explication en français se trouve ici :

http://www.expreg.com/assertion2.php

En fait Yannick, les assertions avant arrière sont appelées communément lookahead et lookbehind.

Elles peuvent être négatives ou positives comme l'a bien précisé JF.

Cependant, ce qui est important à noter à ce sujet, c'est qu'en aucun cas une assertion ne va consommer de caractère lors du match.

C'est le cas par exemple pour les assertions ^(accent circonflexe) et $ (dollar) pour les débuts et fins de lignes.

Ainsi, le match suivant ne matchera que bonjour, sans plus.

import re
s = "bonjour bonsoir"
reg = re.match(".+(?= bonsoir)", s)

Et maintenant, te voici l'intégralité de ce que tu demandes, en utilisant une assertion lookahead positive.

import re
# Chaîne à matcher.
s="bonjour bonsoir"
# Définition de notre Pattern avec un objet re.compile.
# On utilise (?= bonsoir) pour matcher tout ce qui est suivi par une espace suivie du mot bonsoir.
# Il s'agit d'une assertion lookahead positive.
reg = re.compile(".+(?= bonsoir)")
# Affichage du résultat du match, à savoir que :
# 1. group(0) retourne l'intégralité du match.
2. group(1), group(2) etc. retourneront les captures réalisées avec les parenthèses capturantes s'il y en a.
print(reg.match(s).group(0)) # Nous affichera "bonjour".

Bien amicalement,
Abdel.

----- Original Message ----- From: "yannick" <[email protected]>
To: <[email protected]>
Sent: Wednesday, March 23, 2016 12:22 AM
Subject: [progliste] assertion négative


d'abord merci à JF  pour son explication que j'ignorais !
je n'arrive pas à mettre en pratique, si une personne pouvait m'éclairer, merci !
si j'écris :
s="bonjour bonsoir"
en utilisant ?!
comment pourrais je obtenir le mot bonjour ?
merci !

Progliste :
Pour se dsinscrire de la liste : mailto:[email protected]?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pices jointe sont activs leur taille est limit 2 MO
Pour accder aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv, je vous rpondrez en priv.




Progliste :
Pour se d�sinscrire de la liste : 
mailto:[email protected]?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/       

Je vous rappelle que les pi�ces jointe sont activ�s leur taille est limit� � 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�, je 
vous r�pondrez en priv�.
        
        

Répondre à