Expression régulière

Résolu
fabien.joubert Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   -  
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour

Savez vous ce que signifie l'expression régulière '/\(\'([^\']+)/'
J'avoue que je ne comprends pas bien
Merci à ceux qui pourront me répondre
A voir également:

4 réponses

mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
[^\'] tout caractère autre que \ ou '
[^\']+ suite de 1 à n caractères autres que \ ou '
([^\']+) stocker la la suite de 1 à n caractère autre que \ ou '
/\(\' .... / : la chaîne commence par /(' et fini par /.

A noter que si c'est un sed les / de début et fin servent en fait à délimiter l'expression régulière.
http://veille-srv.inist.fr/dilib/v04Veille/Documentation/UnixShell/sed.fre.html

Exemple:
s/É/É/g

signifie remplace (s/) tous (/g) les É par des É

Bonne chance
0
fabien.joubert Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   14
 
Merci bcp
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

il faut savoir avec quel outils tu utilises ta regex


Dans une classe de caractère \ à un comportement un peu spécial comme d'ailleurs par tout.
Donc même à l'intérieur d'une classe pour reconnaître un \ il faut le doubler avec un \ donc \\ ce qui donne [^\\]

Si je prends le cas [^\'] alors si l'interpretation que Miss a donné est correcte on pourrait écrire [^'\] mais on risque d'avoir des surprises puisqu'en ce moment le \ va permettre de reconnaître ] en tant que caractère, donc il ne s'agit plus d'une classe de caractère

En bref dans ton cas l'apostrophe simple à un \ avant qui n'es pas vraiment nécessaire pour ne pas le reconnaître. C'est suffisant [^']


Mais comme l'a bien precisé Miss il faut savoir avec quel outils tu utilises cette regex.
Pour Perl voilà la traduction

'/\(\'([^\']+)/'

reconnaître une paranthèse ouvrante suivi d'un apostrophe simple et ensuite il faut capturer tout les caractères non énumére par la classe (dans notre cas il s'agit d'apostrophe simple) une fois minimum, autant que tu peux maximum

si c'est pour sed on tombe sur une autre situation, il s'agit de l'interprétation par le shell en plus de sed

En bref, pour avoir une explication plus claire il faut nous dire quel outils t'utilise pour cette regex.
Merci.
0
fabien.joubert Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   14
 
eee je ne sais pas... je suis désolé.
je n'ai pas installé les outils.
de plus je ne connais pas bien le fonctionnement du php
je ne suis donc vraiment pas sur de bien répondre...

merci quand même
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

de plus je ne connais pas bien le fonctionnement du php
je ne suis donc vraiment pas sur de bien répondre...


Ben, tu viens de repondre, c'est du php :-))
Et les regex sont plutôt proches de Perl :-)
0