Ahora tomaremos otros temas que aunque son del jdk 1.4 no están obsoletos porque siguen vigentes en la versión 5. Los temas que se desarrollanrán son:
Expresiones Regulares (paquete java.util.regex),
Aserciones (Clase AssertionError del paquete java.lang)
Sistema de Registros de java (paquete lava.util.logging)
Comencemos:
Expresiones Regulares: I parte
Las expresiones regulares en Java son cadenas de texto que sirven de patrón para realizar búsquedas de otras cadenas buscando hacerlas coincidir con dicho patrón, los patrones generalmente contienen metacaracteres que permiten generalizar su significado, por ejemplo: Si queremos encontrar la palabra cuerpo podemos escribirla completamente y su significado será literal, pero si queremos buscar todas las cadenas que comiencen por c. ¿Cómo se hará? Si, la respuesta es con expresiones regulares.
Las expresiones regulares han tenido una evolución y permiten ahora un gran número de posibilidades para encontrar patrones dentro de cadenas. Las expresiones regulares en Java funcionan a través de tres elementos:
Metacaracteres
Patrón (Clase Pattern)
Verificador o Encajador (Clase Matcher)
Los metacaracteres son símbolos que tienen un significado diferente a su uso habitual, hemos dicho que si se quiere encontrar la palabra cuerpo podríamos escribirla (eso es literal), pero si escribo * en un patrón estoy buscando desde cero hasta cualquier número de caracteres del patrón especificado en la cadena, de tal manera que si coloco c\\w* en el patrón, se verificará si la cadena contiene una c, luego está seguida por cero o varios caracteres de palabra, de tal manera que coincide con carro, casa, coche y en fin palabras que comienzan por c.
Veamos una lista de los más comunes metacaracteres:
Metacaracteres Generales | |
Metacaracter | Significa |
\ | Elimina el significado literal del siguiente carácter siguiente |
\t | Tabulador |
\n | Nueva línea |
\r | Retorno de carro |
. (punto) | Un solo character. Ejemplo: “pas.”: coincide con pasa, pase, paso |
Metacaracteres de limite | ||
Metacaracter | Significa | Ejemplo |
^ | Que comience la línea por… | ”^h\\w*”: Que la línea comience por la palabra con h. Nota: “^” tiene otro significado dentro de corchetes, ver más adelante |
$ | Final de línea | ”\\w*\\.$”: línea que termina en punto (fin de párrafo), coincide con “palabra.” (palabra punto) |
\b | Límite de palabra | Puede ser un espacio o retorno de carro. |
\B | Límite de no palabra | Contrario a \b |
\A | Comienzo de entrada | “\\AH\\w*” coincide con “palabra de inicio de entrada”. “Hola” |
Metacaracteres de letras | ||
Metacaracter | Coincide con | |
\w | Cualquier carácter. Ya hemos dado varios ejemplos de este. | |
\W | No carácter. | |
\d | Un dígito (del 0 al 9) | |
\D | Lo que no sea dígito | |
\s | Espacio en blanco | |
\S | Un espacio no en blanco |
Las expresiones regulares también permiten hacer coincidir con ciertos caracteres no predeterminados si estos se encierran entre corchete, de la siguiente manera:
[0123456789]: cualquier número, por lo tanto es el equivalente a \d.
[0-9]: igual al anterior pero expresado a manera de intervalo.
pas[ao]:coincide con pasa, paso, pero no con pase (entre corchete los dígitos que pueden coincidir).
Si quiero al contrario que no sea un elemento dentro del corchete se comienza dentro del corchete con circunflejo ^.
Per[^a]: no coincide con pera, pero si con Pero o Perú.
También podemos colocar varios intervalos:
[a-cA-C]: coincide con a, b o c minúsculas o mayúsculas.
La última característica que se verá en este artículo es la capacidad de las expresiones regulares de coincidir con determinado número de caracteres, ya vimos que el asterisco permite coincidir con cero o mas caracteres, veamos otros metacaracteres.
coincide con A cero o mas vences
Metacaracteres Generales | |
Metacaracter | Coincide con |
A* | A cero o más veces |
A? | A cero o una vez |
A+ | A una o más veces |
A{n} | A n veces, n es un numero entero |
A{n,} | A al menos n veces |
A{n,m} | A entre n y m veces, ambos inclusive |
Hasta aquí la primera parte del blog, en el siguiente artículo seguiremos hablando se las expresiones regulares y veremos ejemplos de código java.
No hay comentarios:
Publicar un comentario