Bonjour,
Je voudrais trouver une expression régulière qui dénote le suivant:
n'importe quel caractère sauf "_", "+" et ">"
Version imprimable
Bonjour,
Je voudrais trouver une expression régulière qui dénote le suivant:
n'importe quel caractère sauf "_", "+" et ">"
Cette classe de caractère devrait convenir:
[^_+>]
(dans une classe de caractère, ^ au début de la classe est la négation des autres caractères de la classe)
Merci pou la réponse.
Mais, faut il ajouter un antislash pour reconnaitre les caractères spéciaux?
A-t-on par exemple d'écrire:
[^_>\+]
Non, c'est inutile pour ces caractères dans une classe de caractère où ils n'ont pas leur signification spéciale mais gardent leur valeur littérale (de même que . * ? ) ( | etc.).
affiche "true" car le + est reconnu littéralement.Code:
1
2 my $a = "toto+"; print "true\n" if $a =~ /[_>+];
Certains caractères ont cependant besoin d'un échappement dans une classe de caractères, comme le - (dans certains cas seulement, ce n'est pas utile en début ou en fin de classe), le ], le / et bien sûr le \. De même, le ^ est la négation de la classe s'il est au début de la classe. Si on veut reconnaître un ^ littéralement, il suffit de ne pas le placer en tête de la classe, ou de mettre un échappement si on le place en tête.