¿Qué son las expresiones regulares en Java?

En Java , Regex o Regular Expression es una interfaz de programa de aplicación que ayuda a definir un patrón para buscar, manipular y editar cadenas. Las expresiones regulares de Java se usan ampliamente en la validación de contraseñas y correos electrónicos. Estas expresiones son proporcionadas por el paquete java.util.regex y consta de 1 interfaz y 3 clases.

Las tres clases son:

  1. Patrón: ayuda a definir patrones.
  2. Matcher: el uso de patrones ayuda a realizar operaciones de coincidencia.
  3. PatternSyntaxException: ayuda a indicar un error de sintaxis.

Java Regex tiene una interfaz conocida como MatchResultInterface que ayuda a determinar el resultado de la operación de coincidencia de la expresión regular.

Sintaxis de Expresión Regular en Java

Ahora veamos cómo escribir una expresión regular en Java con la ayuda de un programa.

Código:

//Java program to demonstrate regular expressions
import java.util.regex.*;
public class RegExamples (
public static void main(String args())(
String A = " Happiness is " + " within yourself";
String B = ".*within.*";
// checks whether the string A contains the word 'within' and stores the result in matchcheck
boolean matchcheck = Pattern.matches(B, A);
//prints the result
System.out.println("Is there any string 'within' in the text ? \n " + matchcheck);
) )

Salida:

Métodos de uso común en expresiones regulares

Hay 3 métodos usados ​​comúnmente en expresiones regulares. Son,

1. Métodos de índice

Los métodos de índice ofrecen valores de índice que ayudan a mostrar con precisión dónde se encontró la coincidencia en la cadena dada como entrada.

Método Descripción
comienzo()Se devuelve el índice de inicio del partido anterior.
inicio (grupo int)Dada la operación previa de coincidencia del grupo, la subsecuencia se captura y se devuelve.
final()Se devuelve el desplazamiento después de hacer coincidir el último carácter.
Fin (grupo int)Dada la operación previa de coincidencia del grupo, la subsecuencia se captura y se compensa después de la coincidencia de su último carácter devuelto.

2. Métodos de estudio

Los métodos de estudio verifican la cadena dada como entrada y se devuelve un valor booleano que indica si se encuentra el patrón o no.

Método Descripción
mirando a()Haga coincidir la secuencia dada como entrada con el patrón desde el comienzo de la región.
encontrar()Encuentra la siguiente subsecuencia de la secuencia dada como entrada contra el patrón desde el comienzo de la región.
find (int start)Restablece el emparejador y luego encuentra la siguiente subsecuencia de la secuencia dada como entrada contra el patrón del índice especificado.
partidos()Compara el contenido con el patrón.

3. Métodos de reemplazo

Métodos que se utilizan para reemplazar texto en una cadena.

Método Descripción
appendReplacement (StringBuffer s, reemplazo de cadena)Se implementará un paso de adición y reemplazo no terminal.
appendTail (StringBuffer s)Se implementará un paso de anexión y reemplazo.
replaceAll (reemplazo de cadena)Reemplace toda subsecuencia de la secuencia dada como entrada que coincida con el patrón con una cadena de reemplazo.
quoteReplacement (String s)Se devolverá una cadena de reemplazo literal para la cadena mencionada.
replaceFirst (reemplazo de cadena)Reemplace la primera subsecuencia de la secuencia dada como entrada que coincida con el patrón con una cadena de reemplazo.

¿Cómo definir la expresión regular en Java?

Hay varias formas en que se puede definir una expresión regular. Son:

1. Literales

Supongamos que se debe buscar una cadena "hai" en un texto "hai". Se puede hacer usando la sintaxis.

Pattern.matches("hai", "hai")

2. Clases de personajes

Coincide con cada carácter individual en el texto dado como entrada contra múltiples caracteres permitidos en la clase de caracteres. Los siguientes son los diversos constructos de clase.

Clase de personaje Explicación
(pqr)Coincide con el texto si contiene p, q or r y debe ser solo una vez.
(pqr)denota la negación y debido a eso, aquí, se toman caracteres únicos, excepto p, q, o r.
(a-zA-Z)a a z y A a Z se consideran.
(anuncio (ps))a a d, o p a s.
(a-dm-p)Unión de ambas gamas.
(az && (pqr))a a z y (p, q or r).
(az && (pq))a a z y también, p, q no se consideran.
(azuela)Realiza la resta.
(az && (mp))a a z y no m a p.

3. Metacaracteres

Los metacaracteres actúan como códigos cortos en la expresión regular. Los siguientes son algunos de los metacaracteres utilizados comúnmente.

Expresión regular Explicación
\reCualquier dígito del 0 al 9. También se puede escribir como (0-9).
\RECualquier no dígito de 0 a 9. También se puede escribir como (0-9).
\ sCarácter de espacio en blanco o (\ t \ n \ x0B \ f \ r).
\ SCarácter sin espacio en blanco o (\ s).
\ wCarácter de palabra o (a-zA-Z_0-9).
\ WCarácter no verbal o (\ w).
\siLímite de palabras.
\SILímite sin palabras.

4. Cuantificadores

Los cuantificadores mencionan el recuento de aparición de cada carácter para que coincida con la cadena.

Expresión regular Explicación
¿un?Ocurre una vez o no ocurre en absoluto.
UN*A ocurre 0 o más veces.
A +A ocurre 1 o más veces.
Un)A ocurre exactamente n veces.
Un, )A ocurre no más que eso.
A (n, m)A ocurre al menos n veces, pero no debe ser más de m veces.

¿Cómo crear una expresión regular en Java?

Ahora, veamos un programa java con las expresiones regulares mencionadas anteriormente.

Código:

//Java program to demonstrate regular expressions
import java.util.regex.*;
public class RegExamples (
public static void main(String args())(
String str="hai";
// Returns true if string 1 matches string 2
System.out.println("Returns true if 'hai' matches 'Hai' :"+
Pattern.matches(str, "Hai")); //False
//Returns true if Hai or hai matches parameter 2
System.out.println("Returns true if 'Hai' or 'hai' matches 'Hai' : "+
Pattern.matches("(Hh)ai", "Hai")); //True
// Returns true if the string matches exactly "ann" or "Ann" or "jak" or "Jak"
System.out.println("Returns true if the string matches exactly 'ann' or 'Ann' or 'jak' or 'Jak' with 'Ann' : "+
Pattern.matches("(aA)nn|(jJ)ak", "Ann"));//True
//returns true if the string contains "with" at any place in the string
System.out.println("returns true if the string contains 'with' in the string 'within' : " +
Pattern.matches(".*with.*", "within"));//True
// returns true if the '9448anna' does not have number in the beginning
System.out.println( "returns true if the '9448anna' does not have number in the beginning : "+
Pattern.matches("^(^\\d).*", "9448anna")); //False
System.out.println("returns true if the '9448anna' does not have number in the beginning : " +
Pattern.matches("^(^\\d).*", "anna9448")); //True
)
)

Salida:

Conclusión

Las expresiones regulares de Java se utilizan ampliamente para aplicaciones en tiempo real, como la verificación de contraseña y correo electrónico. Estas expresiones son API que definen patrones y ofrecen búsqueda, edición y varias otras operaciones en la cadena.

Artículos recomendados

Esta es una guía de expresiones regulares en Java. Aquí discutimos cómo crear, cómo definir y los métodos comúnmente utilizados de expresiones regulares en java. También puede consultar los siguientes artículos para obtener más información:

  1. Los 3 mejores compiladores en Java
  2. Expresiones regulares en JavaScript - Propiedades y métodos
  3. Desarrollo de aplicaciones Java
  4. Métodos de matriz en Java con ejemplos
  5. Funciones de expresiones regulares en Python (ejemplo)