Se puede utilizar un negated character class aquí:
[^a-zA-Z0-9]
Por encima de expresión regular coincidirá con un único carácter que no puede ser una letra mayúscula o minúscula latino o un número.
El ^
al inicio de la clase de caracteres (la parte entre [
y ]
) niega la clase completa para que coincida con cualquier cosa que no en la clase, en lugar de un comportamiento normal clase de caracteres.
para que sea útil, es probable que desee uno de esos:
Cero o más de dichos caracteres
[^a-zA-Z0-9]*
El asterisco (*
) aquí significa que la parte precedente puede repetirse cero o más veces
Uno o más de tales caracteres
[^a-zA-Z0-9]+
el signo más (+
) aquí significa que la parte anterior se puede repetir una o más veces.
Una cadena completa (posiblemente vacía), que consiste solamente en caracteres tales
^[^a-zA-Z0-9]*$
Aquí los personajes ^
y $
tienen un significado que anchors, coincidiendo con el inicio y el final de la cadena, respectivamente. Esto asegura que toda la cadena consta de caracteres que no están en esa clase de caracteres y ningún otro personaje aparece antes o después de ellos.
Una cadena completa (no vacío), que consiste solamente en caracteres tales
^[^a-zA-Z0-9]+$
Abundando un poco, esto no (y no puede) asegurarse de que no lo hará use otros caracteres, posiblemente de otros scripts. La cadena аеΒ
sería completamente válida con la expresión regular anterior, porque usa letras del alfabeto griego y cirílico. Además, hay otras trampas. La cadena á
pasará por encima de la expresión regular, mientras que la cadena ́a
no (porque construye la letra á de la letra ay una marca diacrítica combinada).
Por lo tanto, las clases de caracteres negadas deben tomarse con cuidado.
También puede utilizar números de otras secuencias de comandos, si quería: ١٢٣
:-)
Se puede utilizar la clase de caracteres
[^\p{L&}\p{Nd}]
si tiene que hacerse cargo de las cosas de arriba.
Gracias. Gracias. Gracias. Gracias. :) – sukumar
Vaya ... memoria de los dedos. :-(corregido :-) – beggs