Un point doit-il être échappé dans une classe de caractères (crochets) d'une expression régulière?


95

Un point .dans une expression régulière correspond à n'importe quel caractère unique. Pour que l'expression régulière corresponde à un point, le point doit être échappé:\.

On m'a fait remarquer que, entre crochets, []un point ne doit pas être échappé. Par exemple, l'expression: [.]{3}correspondrait à une ...chaîne.

N'est-ce pas vraiment? Et si oui, est-ce vrai pour toutes les normes regex?


Oui, c'est vrai que DOT (et la plupart des autres caractères spéciaux) n'ont pas besoin d'être échappés dans la classe de caractères.
— anubhava

3
Il n'y a pas de «standard» pour la syntaxe des expressions régulières.
— BoltClock

3
@BoltClock il y en a: posix, posix extended, perl. Voir en.wikipedia.org/wiki/Regular_expression#Standards
— Dariusz

1
@Dariusz, êtes-vous celui qui m'a voté parce que vous pensiez que j'avais tort? si oui, je veux récupérer mes 2 points :)
— Paul Samsotha

@peeskillet oui je l'étais, je suis corrigé. Thx et désolé.
— Dariusz

Réponses:


134

Dans une classe de caractères (les crochets) tout caractère sauf ^, -, ]ou \est un littéral.

Ce site Web est une référence brillante et contient de nombreuses informations sur les nuances des différentes saveurs de regex. http://www.regular-expressions.info/refcharclass.html


3
Cela dépend vraiment de la façon dont la langue le gère, mais pour la plupart des langues, c'est vrai.
— Patrick Oscity

40
-est également littéral si c'est la dernière valeur
— CONvid19

16
Et ^ est littéral si ce n'est pas le premier caractère
— Nigel B.Peck

1
Si $ ressemble à une variable, il doit également être échappé. Par exemple: [$.]
— W3Coder

1
@PedroLobito Et si c'est le premier, je pense
— Tim Malone
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.