Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

regexp

3 réponses
Avatar
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

3 réponses

Avatar
Nicolas Richard
Kevin Denis writes:
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.



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.
Avatar
Kevin Denis
Le 26-08-2014, Nicolas Richard a écrit :
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.



Peut être qu'un "negative lookahead" t'aidera ?
cf http://www.regular-expressions.info/lookaround.html



c'est parfait, merci.
--
Kevin
Avatar
Olivier Miakinen
Le 26/08/2014 13:07, Nicolas Richard répondait à Kevin Denis :

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.



Peut être qu'un "negative lookahead" t'aidera ?
cf http://www.regular-expressions.info/lookaround.html

[...] s/chaine (?!suffixe).*/OK/ [...]



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