regexp
Le
Kevin Denis

Bonjour,
j'ai une question sur une regexp PCRE.
Je veux matcher tout ce qui contient une chaine, sauf si elle est suivie
d'un suffixe particulier.
Par exemple:
chaine qqchose -> OK
chaine suffixe -> NOK
chaine des trucs suffixe -> OK
Est il possible de faire ça en une seule regexp?
J'utilise 'chaine [^s]' pour l'instant, mais j'aimerais faire mieux, car
la chaine: 'chaine ssss' est refusée alors qu'elle devrait être acceptée.
Merci
(Je X-post avec fcu)
--
Kevin
j'ai une question sur une regexp PCRE.
Je veux matcher tout ce qui contient une chaine, sauf si elle est suivie
d'un suffixe particulier.
Par exemple:
chaine qqchose -> OK
chaine suffixe -> NOK
chaine des trucs suffixe -> OK
Est il possible de faire ça en une seule regexp?
J'utilise 'chaine [^s]' pour l'instant, mais j'aimerais faire mieux, car
la chaine: 'chaine ssss' est refusée alors qu'elle devrait être acceptée.
Merci
(Je X-post avec fcu)
--
Kevin
Peut être qu'un "negative lookahead" t'aidera ?
cf http://www.regular-expressions.info/lookaround.html
$ echo "chaine qqchose" | perl -p -e 's/chaine (?!suffixe).*/OK/;'
OK
$ echo "chaine suffixe" | perl -p -e 's/chaine (?!suffixe).*/OK/;'
chaine suffixe
$ echo "chaine des trucs suffixe" | perl -p -e 's/chaine (?!suffixe).*/OK/;'
OK
$ echo "chaine suffixe des trucs" | perl -p -e 's/chaine (?!suffixe).*/OK/;'
chaine suffixe des trucs
HTH,
--
Nico.
c'est parfait, merci.
--
Kevin
Entièrement d'accord, et j'en profite pour rappeler l'existence du
groupe fr.comp.lang.regexp qui est consacré à ce genre de question.
Cordialement,
--
Olivier Miakinen