OVH Cloud OVH Cloud

regexp, pattern matching, et la liberté de l'utilisateur

1 réponse
Avatar
lasconic
Bonjour,

Un petit problème de regexp pour vous :-)
Un utilisateur ecrit dans un fichier un pattern (il a toute liverté pour
le faire... il peut donc choisir au hasard [SG])
Mon script recupere ce pattern dans $pattern et cherche les fichiers
dont le nom ne contient pas ce pattern de la manière suivante (a partir
du chemin complet d'ou le basename):

basename($chemin)!~/$pattern/g

Evidemment, ça matche aussi (et surtout en fait) les noms contenant S ou
G ! Ce que je ne veux ... j'imagine que une solution serait de faire en
sorte d'echapper les [ et ] ... mais le nombre de caracteres qu'il
faudrait echapper est considérable . * etc ...

Ma question est donc y'a t il un myen pour que [SG] ou .*|m soit
considéré tel quel et non interpreté dans la regexp ? ? ?

Merci !

Lasconic

1 réponse

Avatar
Alain BARBET
Ma question est donc y'a t il un myen pour que [SG] ou .*|m soit
considéré tel quel et non interpreté dans la regexp ? ? ?


perldoc perlre
E end case modification (think vi)
Q quote (disable) pattern metacharacters till E
...

/$unquotedQ$quotedE$unquoted/

HTH,
--
Alain BARBET