En esta lección aprenderemos sobre las clases de caracteres, que son representaciones especiales que permiten buscar cualquier carácter de un conjunto específico.
Veamos cómo funcionan las clases de caracteres con un ejemplo sencillo. Supongamos que queremos encontrar solo las letras del alfabeto.
Para esto, podemos utilizar las clases de caracteres, que se describen entre corchetes. En nuestro caso, todas las letras minúsculas del alfabeto se verían así: [a-z]. Podemos ver que las letras del alfabeto en la cadena se resaltaron:
/ [a-z]/
java 11_34-1938
De la misma manera, podemos buscar los dígitos del cero al nueve:
/ [0-9]/
java 11_34-1938
En este ejemplo, especificaremos solo dos caracteres, y cada uno de ellos será encontrado:
/ [aj]/
java 11_34-1938
En las clases de caracteres, se puede utilizar el mecanismo de negación. Si colocamos el símbolo ^ antes del primer carácter entre corchetes, se inicia una búsqueda invertida, es decir, se encuentran todos los caracteres excepto los enumerados después de ^:
/ [^aj]/
java 11_34-1938
Si además de las letras del alfabeto, necesitamos encontrar el guion, debemos especificarlo al principio o al final del grupo de caracteres. De esta manera, no se interpretará como un carácter especial:
/ [aj-]/
java 11_34-1938
En las expresiones regulares, a menudo se utilizan clases de caracteres predefinidas especiales. Se escriben utilizando el símbolo \ y tienen sus propias representaciones en el lenguaje de las expresiones regulares.
En la lección anterior, utilizamos \ para escapar caracteres. Aquí, sin embargo, se utiliza como parte de la representación. Encontremos todos los dígitos en el texto utilizando la representación de la clase de dígitos \d:
/ \d/
java 11_34-1938
Si especificamos la letra mayúscula D, obtendremos todos los demás caracteres en el resultado de la búsqueda, incluyendo espacios y tabulaciones:
/ \D/
java11_34-1938
Para buscar caracteres de espacio en blanco, existe la clase \s. A su vez, la clase \S representa todos los caracteres que no son espacios en blanco. Como podemos ver, el principio de representación de las clases de caracteres es simple:
- Una letra minúscula representa una clase
- Una letra mayúscula representa todo lo que no pertenece a esa clase
Hay otra clase popular \w, que incluye todas las letras del alfabeto, todos los dígitos y guiones bajos.
En el siguiente código no se ve, pero los caracteres de espacio en blanco no cumplen con esta clase, al igual que el guion -:
/ \w/
java 11_34-1938
El uso de la clase \w es equivalente a esta representación: [0-9a-zA-Z_]. Ten en cuenta que al buscar en el rango de caracteres, es importante tener en cuenta el caso, por lo que después de las minúsculas a-z se encuentran las mayúsculas A-Z.
Por lo tanto, \W encuentra la versión invertida de su contraparte en minúsculas. Aquí, junto con el guion, también se encontrarán los caracteres de espacio en blanco:
/ \W/
java 11_34-1938
Para acceder completo a curso necesitas un plan básico
El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.