¿Tiene que escaparse un punto en una clase de caracteres (corchetes) de una expresión regular?

97

Un punto .en una expresión regular coincide con cualquier carácter. Para que la expresión regular coincida con un punto, el punto debe escaparse:\.

Se me ha señalado que dentro de los corchetes []no es necesario omitir un punto. Por ejemplo, la expresión: [.]{3}coincidiría con una ...cadena.

¿No es verdad? Y si es así, ¿es cierto para todos los estándares de expresiones regulares?

Dariusz
fuente
Sí, es cierto que DOT (y la mayoría de los demás caracteres especiales) no necesitan escaparse en la clase de caracteres.
anubhava
3
No existe un "estándar" para la sintaxis de expresiones regulares.
BoltClock
3
@BoltClock hay algunos: posix, posix extendido, perl. Ver en.wikipedia.org/wiki/Regular_expression#Standards
Dariusz
1
@Dariusz, ¿fuiste tú quien me votó en contra porque pensaste que estaba equivocado? si es así, quiero que me devuelvan mis 2 puntos :)
Paul Samsotha
@peeskillet sí lo estaba, me corrigió. Gracias y lo siento.
Dariusz

Respuestas:

136

En una clase de caracteres (entre corchetes) cualquier carácter excepto ^, -, ]o \es un literal.

Este sitio web es una referencia brillante y tiene mucha información sobre los matices de diferentes sabores de expresiones regulares. http://www.regular-expressions.info/refcharclass.html

lilactiger89
fuente
3
Realmente depende de cómo lo maneje el idioma, pero para la mayoría de los idiomas esto es cierto.
Patrick Oscity
40
-también es literal si es el último valor
Pedro Lobito
16
Y ^ es literal si no es el primer carácter
Nigel B. Peck
1
Si $ parece una variable, también debe escaparse. Por ejemplo: [$.]
W3Coder
1
@PedroLobito Y si es el primero, creo
Tim Malone