-
es especial en la clase de caracteres. Se usa para definir un rango como lo ha hecho con a-z
.
para que coincida con un literal -
que necesita para escapar de ella, ya sea o colocarlo de manera que no va a funcionar como operador de rango:
^[a-zA-Z \-,.()]*$
^^ escaping \
o
^[-a-zA-Z ,.()]*$
^placing it at the beginning.
o
^[a-zA-Z -,.()-]*$
^placing it at the end.
y curiosamente
^[a-z-A-Z -,.()]*$
^placing in the middle of two ranges.
En el último caso -
es colocar entre a-z
y A-Z
ya que tanto los caracteres que rodean la -
(la que queremos tratar literalmente) que es z
y A
ya están involucrados en rangos, la -
se trata literalmente de nuevo .
De todos los métodos mencionados, se recomienda el método de escapar ya que hace que el código sea más fácil de leer y entender. Cualquiera que vea el \
esperaría que se intentara un escape. Colocar el -
al principio (final) creará problemas si luego agrega un carácter antes (después) en la clase de caracteres sin escapar del -
formando así un rango.
caracteres de escape que son símbolos de expresiones regulares: (.) –
@ Mathias E: Dentro de un grupo de caracteres, que no tienen que escapar de todas las fichas de expresiones regulares. – unholysampler
¿Esa es realmente la expresión regular que estás usando en realidad? – Gumbo