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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Nicolas Richard
Le #26304431
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

$ 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.
Kevin Denis
Le #26304640
Le 26-08-2014, Nicolas Richard
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
Olivier Miakinen
Le #26304849
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
Publicité
Poster une réponse
Anonyme