Expresiones Regulares JAVA : Guia práctica

Expresiones regulares en Java

Dominar las expresiones regulares con Java es una tarea complicada. Pero no te procupes, en este articulo te lo explicare de manera que ya no se un problema.

Iniciaremos con algo de teoría, pero veras que pronto entratemos a la práctica. Y es que acá es donde vas a tomar mas fuerza dominando estas herramientas.

Índice
  1. ¿Qué es una expresión regular en Java?
  2. Como usar expresiones regulares java
  3. Conociendo el paquete java.util.regex
  4. Ejemplos de expresiones regulares en Java
  5. Regex Clases de caracteres en java
  6. Elementos cuantitativos de las expresiones regulares java
  7. Metacaracteres de expresiones regulares con java
  8. Curso regex
  9. Regex curso
  10. Java expresion regular

¿Qué es una expresión regular en Java?

Las expresiones regulares java son cadenas especiales que le ayudan a buscar cadenas y también grupos de cadenas, para esto se utiliza una sintaxis especial por medio de un Patter(patron). Soporta el uso de java expresiones regulares por medio del package java.util.regex.

Como usar expresiones regulares java

como usar expresiones regulares en java

Para Java Regex o Expresión Regular Java existe una API que define patrones para buscar o manipular cadenas en java.

Tal como te comente antes, se utiliza la API Java Regex la cual proporciona una interfaz y tres clases en el paquete java.util.regex.

Las java expresiones regulares pueden utilizarse para realizar todo tipo de operaciones de búsqueda y sustitución de texto.

Aunque no hay clases de expresiones regulares incorporadas en Java, puede manipular las expresiones regulares importando el paquete java.util.regex. Este paquete contiene las siguientes clases:

  • Clase de plantilla - define una plantilla (para su uso en una búsqueda).
  • Matcher - se utiliza para buscar patrones.
  • PatternSyntaxException - indica errores de sintaxis en los patrones de java expresiones regulares.

Conociendo el paquete java.util.regex

Las clases Matcher y Pattern proporcionan la funcionalidad de las expresiones regulares de Java. El paquete java.util.regex proporciona las siguientes clases e interfaces para expresiones regulares.

La clase Matcher

Implementa la interfaz MatchResult. Se trata de un motor de expresiones regulares que permite realizar un proceso de coincidencia de cadenas.

Descripción de los métodos:

boolean matches() Comprueba si una expresión regular coincide con el patrón.
boolean find() Encuentra la siguiente expresión que coincide con el patrón.
boolean find(int start) Busca la siguiente expresión que coincida con el patrón a partir del número de inicio dado.
String group() Devuelve la sub cadena coincidente.
int start() Devuelve el índice de inicio de la sub cadena correspondiente.
int end() Devuelve el índice final de la subred correspondiente.
int groupCount(): Devuelve el número total de subredes coincidentes.

Clase de patrón(Pattern)

Compilación de expresiones regulares java. Se utiliza para definir patrones para el motor de expresiones regulares.

Descripción de los métodos:

  • static Pattern compile(String regex): Compila la expresión regular dada y devuelve una instancia de Pattern.
  • Matcher matcher(CharSequence input): Crea un matcher que hace coincidir la entrada dada con el patrón.
  • static boolean matches(String regex, CharSequence input): Funciona como una combinación de los métodos compile y matcher. Compila una expresión regular y hace coincidir la entrada dada con su patrón.
  • String[] split(CharSequence input): Divide la cadena de entrada dada para que coincida con el patrón dado.
  • String pattern(): Devuelve un patrón de expresión regular.

Ejemplos de expresiones regulares en Java

expresion regular java ejemplos

Hay tres maneras de escribir ejemplos de expresiones regulares en Java. Pattern.compile java ejemplo :

import java.util.regex.*;  
public class RegexExample1{  
public static void main(String args[]){  
//1st way  
Pattern p = Pattern.compile(".s");//. represents single character  
Matcher m = p.matcher("as");  
boolean b = m.matches();  
  
//2nd way  
boolean b2=Pattern.compile(".s").matcher("as").matches();  
  
//3rd way  
boolean b3 = Pattern.matches(".s", "as");  
  
System.out.println(b+" "+b2+" "+b3);  
}}  

Regex Clases de caracteres en java

Entendiendo las clases de caracteres en Java y expresiones regulares.

[abc] a, b, o c (clase simple)
[^abc] Cualquier carácter excepto a, b o c (negación)
[a-zA-Z] de la “a” a la “z” o de la “A” a la “Z”, ambas inclusive (rango)
[a-d[m-p]] de “a” a “d”, o de “m” a “p”: [a-dm-p] (unión)
[a-z&&[def]] d, e, o f (intersección)
[a-z&&[^bc] de la “a” a la “z”, excepto “b” y “c”: [ad-z] (sustracción)
[a-z&&[^m-p] de la “a” a la “z”, y no de “m” a “p”: [a-lq-z](resta)

Regular Expression Character classes Example

import java.util.regex.*;  
class RegexExample2{  
public static void main(String args[]){  
System.out.println(Pattern.matches(".s", "as"));//true (2nd char is s)  
System.out.println(Pattern.matches(".s", "mk"));//false (2nd char is not s)  
System.out.println(Pattern.matches(".s", "mst"));//false (has more than 2 char)  
System.out.println(Pattern.matches(".s", "amms"));//false (has more than 2 char)  
System.out.println(Pattern.matches("..s", "mas"));//true (3rd char is s)  
}}  

Elementos cuantitativos de las expresiones regulares java

El signo de cantidad indica el número de apariciones de un carácter.

X ? La X sólo aparece una vez o no aparece.
X+ X ocurre al menos una vez.
X* X aparece cero veces o más
X{n} X aparece sólo n veces
X{n,} X aparece más de n veces
X{y,z} X ocurre más de y veces pero menos de z veces

Expresión regular Clases de caracteres y cuantificadores Ejemplo

import java.util.regex.*; 

class RegexExample4{ 

public static void main(String args[]){ 

System.out.println(«? quantifier ….»); 

System.out.println(Pattern.matches(«[amn]?», «a»));//true (a or m or n comes one time) 

System.out.println(Pattern.matches(«[amn]?», «aaa»));//false (a comes more than one time) 

System.out.println(Pattern.matches(«[amn]?», «aammmnn»));//false (a m and n comes more than one time) 

System.out.println(Pattern.matches(«[amn]?», «aazzta»));//false (a comes more than one time) 

System.out.println(Pattern.matches(«[amn]?», «am»));//false (a or m or n must come one time) 

System.out.println(«+ quantifier ….»); 

System.out.println(Pattern.matches(«[amn]+», «a»));//true (a or m or n once or more times) 

System.out.println(Pattern.matches(«[amn]+», «aaa»));//true (a comes more than one time) 

System.out.println(Pattern.matches(«[amn]+», «aammmnn»));//true (a or m or n comes more than once) 

System.out.println(Pattern.matches(«[amn]+», «aazzta»));//false (z and t are not matching pattern) 

System.out.println(«* quantifier ….»); 

System.out.println(Pattern.matches(«[amn]*», «ammmna»));//true (a or m or n may come zero or more times) 

}} 

Metacaracteres de expresiones regulares con java

Los metacaracteres de las expresiones regulares en java se utilizan como códigos cortos.

. Cualquier carácter (puede o no coincidir con el terminador)
d Cualquier dígito, corto de [0-9]
D Cualquier carácter que no sea un dígito, abreviado [^0-9]
s Cualquier carácter de espacio en blanco, corto para [tnx0Bfr]
S Cualquier carácter que no sea un espacio en blanco, abreviatura de [^s]
w Cualquier carácter de palabra, abreviado por [a-zA-Z_0-9]
W Cualquier carácter que no sea una palabra, abreviado [^w]
b Un límite de palabra
B Un límite de palabra que no sea un espacio en blanco

Ejemplo de metacaracteres de expresiones regulares

import java.util.regex.*; 

class RegexExample5{ 

public static void main(String args[]){ 

System.out.println(«metacharacters d….»);d means digit 

System.out.println(Pattern.matches(«d», «abc»));//false (non-digit) 

System.out.println(Pattern.matches(«d», «1»));//true (digit and comes once) 

System.out.println(Pattern.matches(«d», «4443»));//false (digit but comes more than once) 

System.out.println(Pattern.matches(«d», «323abc»));//false (digit and char) 

System.out.println(«metacharacters D….»);D means non-digit 

System.out.println(Pattern.matches(«D», «abc»));//false (non-digit but comes more than once) 

System.out.println(Pattern.matches(«D», «1»));//false (digit) 

System.out.println(Pattern.matches(«D», «4443»));//false (digit) 

System.out.println(Pattern.matches(«D», «323abc»));//false (digit and char) 

System.out.println(Pattern.matches(«D», «m»));//true (non-digit and comes once) 

System.out.println(«metacharacters D with quantifier….»); 

System.out.println(Pattern.matches(«D*», «mak»));//true (non-digit and may come 0 or more times) 

}} 

Aprende más de programación:

Curso regex

El curso regex es una guía práctica para aprender sobre expresiones regulares en el lenguaje de programación JAVA. Las expresiones regulares son herramientas poderosas que permiten buscar y manipular cadenas de texto de forma eficiente. Dominar las expresiones regulares es fundamental para desarrolladores y programadores que deseen mejorar sus habilidades en el manejo de cadenas de texto.

En el curso regex se cubren los conceptos básicos de las expresiones regulares, como los caracteres especiales, las clases de caracteres y los cuantificadores. También se exploran técnicas avanzadas, como el uso de grupos de captura y las referencias hacia atrás. Los participantes aprenderán cómo aplicar estas técnicas en el lenguaje de programación JAVA para realizar búsquedas y manipulaciones más precisas en sus proyectos.

El curso regex se enfoca en la práctica, brindando a los participantes numerosos ejercicios y casos de estudio para aplicar los conocimientos adquiridos. A medida que avanzan en el curso, los participantes desarrollarán habilidades para crear expresiones regulares más complejas y eficientes. Además, se proporcionarán consejos y trucos para optimizar el rendimiento de las expresiones regulares en proyectos reales.

Al finalizar el curso regex, los participantes estarán capacitados para utilizar expresiones regulares en el lenguaje de programación JAVA de manera efectiva. Podrán aplicar estas habilidades en la validación de formularios, en la extracción de información de cadenas de texto y en la manipulación de datos en general. Con el conocimiento adquirido, los participantes mejorarán su productividad como desarrolladores y podrán resolver problemas relacionados con el manejo de cadenas de texto de forma más eficiente.

Regex curso

En el mundo de la programación, las expresiones regulares son una herramienta poderosa que nos permite realizar búsquedas y manipulaciones de texto de manera eficiente. En el contexto de JAVA, las expresiones regulares se implementan mediante la clase Pattern y la clase Matcher. Estas clases nos permiten definir patrones de búsqueda y aplicarlos a cadenas de texto para encontrar coincidencias.

Para utilizar las expresiones regulares en JAVA, es necesario comprender la sintaxis y las diferentes opciones de búsqueda que podemos utilizar. Por ejemplo, podemos utilizar el meta-carácter . para representar cualquier carácter, o el meta-carácter d para representar cualquier dígito. Además, podemos utilizar los cuantificadores + y * para especificar la cantidad de veces que un patrón debe repetirse en la cadena de texto.

Además de la búsqueda simple, las expresiones regulares en JAVA también nos permiten realizar reemplazos en el texto. Podemos utilizar el método replaceAll() de la clase Matcher para reemplazar todas las ocurrencias de un patrón por otra cadena de texto. Esto es especialmente útil cuando necesitamos modificar o limpiar el texto de entrada.

Por otro lado, las expresiones regulares en JAVA también nos permiten validar si una cadena de texto cumple con un patrón determinado. Por ejemplo, podemos utilizar una expresión regular para validar si un número de teléfono sigue el formato correcto o si una dirección de correo electrónico es válida. Esto nos ayuda a garantizar que los datos ingresados por los usuarios sean correctos y consistentes.

En resumen, las expresiones regulares en JAVA son una herramienta esencial para cualquier programador que necesite realizar búsquedas, reemplazos o validaciones de texto de manera eficiente. Con un poco de práctica y comprensión de la sintaxis, podemos aprovechar al máximo esta poderosa herramienta y mejorar la calidad de nuestros programas.

Java expresion regular

Las expresiones regulares en Java son una poderosa herramienta que permite buscar y manipular patrones en cadenas de texto. Java proporciona una clase llamada Pattern que permite crear y utilizar expresiones regulares. Con las expresiones regulares en Java, podemos realizar tareas como validar una dirección de correo electrónico, buscar palabras clave en un texto o extraer números de una cadena.

Una expresión regular en Java se compone de caracteres y metacaracteres que forman un patrón de búsqueda. Por ejemplo, si queremos buscar todas las palabras que comienzan con "java" en un texto, podemos utilizar la expresión regular "javaw+". En esta expresión, "java" es una cadena literal y "w+" indica que queremos buscar una o más letras o números después de "java".

Para utilizar expresiones regulares en Java, primero debemos crear un objeto de la clase Pattern y luego utilizarlo para buscar o manipular cadenas de texto. Podemos utilizar métodos como matches() para verificar si una cadena coincide con un patrón, o find() para encontrar la siguiente ocurrencia de un patrón en una cadena.

Java también proporciona una clase llamada Matcher que nos ayuda a trabajar con expresiones regulares. Podemos utilizar métodos como group() para obtener la parte de la cadena que coincide con el patrón, o start() y end() para obtener las posiciones de inicio y fin de la coincidencia en la cadena.

En resumen, las expresiones regulares en Java son una herramienta poderosa para buscar y manipular patrones en cadenas de texto. Con las clases Pattern y Matcher, podemos crear y utilizar expresiones regulares de manera eficiente. Aprender a utilizar expresiones regulares en Java puede ayudarnos a realizar tareas de procesamiento de texto de manera más rápida y eficiente.

Pattern java ejemplos

Aquí tienes una tabla relacionada con "pattern java ejemplos":

Expresión Regular Descripción Ejemplo
d Corresponde a cualquier dígito Pattern.matches("\d", "7") devuelve true
w Corresponde a cualquier carácter alfanumérico Pattern.matches("\w", "A") devuelve true
s Corresponde a cualquier espacio en blanco Pattern.matches("\s", " ") devuelve true
[abc] Corresponde a cualquier carácter dentro del conjunto especificado Pattern.matches("[abc]", "a") devuelve true
[^abc] Corresponde a cualquier carácter que no esté dentro del conjunto especificado Pattern.matches("[^abc]", "d") devuelve true
d+ Corresponde a uno o más dígitos Pattern.matches("\d+", "123") devuelve true
bw+b Corresponde a una palabra completa Pattern.matches("\b\w+\b", "hello") devuelve true

Las expresiones regulares son exclusivas de java

Las expresiones regulares en Java
Las expresiones regulares en otros lenguajes de programación x

Expresiones regulares java ejemplos

A continuación se muestra una tabla que contiene algunos ejemplos de expresiones regulares en Java:

Expresión Regular Descripción Ejemplo
d Corresponde a cualquier dígito Pattern.matches("\d", "5") devuelve true
w Corresponde a cualquier carácter alfanumérico Pattern.matches("\w", "a") devuelve true
[abc] Corresponde a cualquier carácter entre corchetes Pattern.matches("[abc]", "a") devuelve true
s Corresponde a cualquier espacio en blanco Pattern.matches("\s", " ") devuelve true
^ Corresponde al inicio de una cadena Pattern.matches("^Java", "Java es genial") devuelve true
$ Corresponde al final de una cadena Pattern.matches("genial$", "Java es genial") devuelve true

Estos son solo algunos ejemplos básicos de expresiones regulares en Java. Hay muchas más posibilidades y combinaciones que se pueden utilizar para realizar búsquedas y validaciones más complejas en cadenas de texto.

Expresiones regulares en java ejemplos

Expresión Regular Descripción Ejemplo
[0-9] Cualquier dígito del 0 al 9 2
[a-z] Cualquier letra minúscula b
[A-Z] Cualquier letra mayúscula H
[a-zA-Z] Cualquier letra (mayúscula o minúscula) k
[0-9a-z] Cualquier dígito del 0 al 9 o letra minúscula 4
d Cualquier dígito 9
w Cualquier caracter alfanumérico x
s Cualquier espacio en blanco  
. Cualquier caracter (excepto salto de línea) a
^ El inicio de una línea ^Hola
$ El final de una línea mundo$
* 0 o más repeticiones del caracter anterior aa*
+ 1 o más repeticiones del caracter anterior bb+
? 0 o 1 repetición del caracter anterior c?
{n} n repeticiones del caracter anterior d{3}

Expresiones en java

Expresión Regular Descripción Ejemplo
d Encuentra cualquier dígito La expresión d encontrará el número 7 en el texto "Hola 7 amigos"
w Encuentra cualquier carácter alfanumérico (letras y dígitos) La expresión w encontrará la letra "a" en el texto "¡Hola a todos!"
s Encuentra cualquier espacio en blanco La expresión s encontrará el espacio en blanco en el texto "Hola mundo"
[abc] Encuentra cualquier carácter dentro del conjunto especificado La expresión [abc] encontrará la letra "a" en el texto "Hola amigos"
[^abc] Encuentra cualquier carácter que no esté dentro del conjunto especificado La expresión [^abc] encontrará la letra "d" en el texto "Hola amigos"
^ Encuentra el inicio de una línea La expresión ^Hola encontrará la palabra "Hola" al inicio de una línea
$ Encuentra el final de una línea La expresión mundo$ encontrará la palabra "mundo" al final de una línea
b Encuentra un límite de palabra La expresión bamigosb encontrará la palabra "amigos" como una palabra completa
* Encuentra cero o más repeticiones del elemento anterior La expresión a* encontrará "a", "aa", "aaa", etc. en el texto "¡Hola a todos!"
+ Encuentra una o más repeticiones del elemento anterior La expresión a+ encontrará "a", "aa", "aaa", etc. en el texto "¡Hola a todos!"
? Encuentra cero o una repetición del elemento anterior La expresión colou?r encontrará "color" y "colour" en el texto "El color de la pared"

Metacaracteres java

Aquí tienes la tabla relacionada con los metacaracteres de Java:

Metacaracter Descripción
. Representa cualquier carácter, excepto un salto de línea.
d Representa cualquier dígito numérico.
D Representa cualquier carácter que no sea un dígito numérico.
w Representa cualquier carácter alfanumérico o guion bajo.
W Representa cualquier carácter que no sea alfanumérico ni guion bajo.
s Representa cualquier espacio en blanco.
S Representa cualquier carácter que no sea un espacio en blanco.
b Representa una frontera de palabra.
B Representa cualquier posición que no sea una frontera de palabra.
^ Representa el inicio de una línea.
$ Representa el final de una línea.
[ ] Representa un conjunto de caracteres.
[^ ] Representa cualquier carácter que no esté en el conjunto.
* Representa cero o más repeticiones del carácter anterior.
+ Representa una o más repeticiones del carácter anterior.
? Representa cero o una repetición del carácter anterior.
{n} Representa exactamente n repeticiones del carácter anterior.
{n,} Representa al menos n repeticiones del carácter anterior.
{n,m} Representa entre n y m repeticiones del carácter anterior.
( ) Define un grupo de caracteres.
| Representa una alternativa entre dos patrones.
  Escapa un carácter especial.

Cadena en java

Método Descripción
length() Devuelve la longitud de la cadena.
charAt(int index) Devuelve el carácter en la posición especificada.
substring(int beginIndex, int endIndex) Devuelve una subcadena que comienza en la posición beginIndex y termina en la posición endIndex-1.
toUpperCase() Devuelve una nueva cadena en mayúsculas.
toLowerCase() Devuelve una nueva cadena en minúsculas.
trim() Elimina los espacios en blanco al inicio y al final de la cadena.
replace(char oldChar, char newChar) Reemplaza todas las ocurrencias del carácter oldChar por el carácter newChar.
startsWith(String prefix) Comprueba si la cadena comienza con el prefijo especificado.
endsWith(String suffix) Comprueba si la cadena termina con el sufijo especificado.
contains(CharSequence sequence) Comprueba si la cadena contiene la secuencia especificada.

Expresiones regulares linux

A continuación se muestra una tabla con ejemplos de expresiones regulares en Linux:

Expresión Regular Descripción
[0-9] Corresponde a cualquier dígito del 0 al 9.
[a-z] Corresponde a cualquier letra minúscula de la a a la z.
[A-Z] Corresponde a cualquier letra mayúscula de la A a la Z.
[a-zA-Z] Corresponde a cualquier letra minúscula o mayúscula.
[0-9a-fA-F] Corresponde a cualquier dígito hexadecimal (0-9, a-f, A-F).
. Corresponde a cualquier carácter, excepto un salto de línea.
d Corresponde a cualquier dígito.
w Corresponde a cualquier carácter alfanumérico (letras, dígitos y guiones bajos).
s Corresponde a cualquier espacio en blanco.
^ Corresponde al inicio de una línea.
$ Corresponde al final de una línea.
* Corresponde a cero o más repeticiones del elemento anterior.
+ Corresponde a una o más repeticiones del elemento anterior.
? Corresponde a cero o una repetición del elemento anterior.
{n} Corresponde exactamente a n repeticiones del elemento anterior.
{n,} Corresponde a n o más repeticiones del elemento anterior.
{n,m} Corresponde a entre n y m repeticiones del elemento anterior.

Si quieres conocer otros artículos parecidos a Expresiones Regulares JAVA : Guia práctica puedes visitar la categoría Java.

Leonel Jiménez

Apasionado de la programación. Trabajando en este rubro de la programación desde hace 11 años. Ahora compartiendo contenido de programación esperando aportar valor a otros programadores. No olvides visitar mi canal de youtube

Deja una respuesta

Subir

Para ofrecer las mejores experiencias, utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. El consentimiento de estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones. Más Información