Tutoriales de Java

Java INICIO Introducción a Java Introducción a Java Sintaxis Java Comentarios Java Variables Java Tipos de datos Java Conversión de tipos de Java Operadores Java Cadenas Java Matemáticas Java Booleanos de Java Java si... si no Conmutador de Java Ciclo while de Java Java para bucle Java Pausa/Continuar Matrices de Java

Métodos de Java

Métodos de Java Parámetros del método Java Sobrecarga del método Java Alcance de Java Recursión de Java

Clases Java

programación orientada a objetos de Java Clases/Objetos Java Atributos de clase de Java Métodos de clase Java Constructores Java Modificadores de Java Encapsulación de Java Paquetes Java/API Herencia de Java Polimorfismo de Java Clases internas de Java Abstracción de Java Interfaz Java Enumeraciones de Java Entrada de usuario de Java Fecha Java Java ArrayList Java LinkedList Mapa hash de Java HashSet de Java Iterador de Java Clases contenedoras de Java Excepciones de Java Java expresión regular Subprocesos de Java Java lambda

Manejo de archivos Java

Archivos Java Java crear/escribir archivos Archivos de lectura de Java Eliminar archivos de Java

Java Cómo

Añadir dos números

Referencia Java

Palabras clave de Java Métodos de cadena de Java Métodos matemáticos de Java

Ejemplos de Java

Ejemplos de Java Compilador Java Ejercicios Java Cuestionario Java Certificado Java


Expresiones regulares de Java


¿Qué es una expresión regular?

Una expresión regular es una secuencia de caracteres que forma un patrón de búsqueda. Cuando busca datos en un texto, puede usar este patrón de búsqueda para describir lo que está buscando.

Una expresión regular puede ser un solo carácter o un patrón más complicado.

Las expresiones regulares se pueden utilizar para realizar todo tipo de operaciones de búsqueda y reemplazo de texto .

Java no tiene una clase de expresión regular incorporada, pero podemos importar el java.util.regex paquete para trabajar con expresiones regulares. El paquete incluye las siguientes clases:

  • PatternClase - Define un patrón (para ser usado en una búsqueda)
  • MatcherClase: se utiliza para buscar el patrón.
  • PatternSyntaxExceptionClase: indica un error de sintaxis en un patrón de expresión regular

Ejemplo

Averigüe si hay alguna ocurrencia de la palabra "w3schools" en una oración:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
  public static void main(String[] args) {
    Pattern pattern = Pattern.compile("w3schools", Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher("Visit W3Schools!");
    boolean matchFound = matcher.find();
    if(matchFound) {
      System.out.println("Match found");
    } else {
      System.out.println("Match not found");
    }
  }
}
// Outputs Match found

Ejemplo explicado

En este ejemplo, se busca la palabra "w3schools" en una oración.

Primero, el patrón se crea utilizando el Pattern.compile()método. El primer parámetro indica qué patrón se está buscando y el segundo parámetro tiene un indicador que indica que la búsqueda no debe distinguir entre mayúsculas y minúsculas. El segundo parámetro es opcional.

El matcher()método se utiliza para buscar el patrón en una cadena. Devuelve un objeto Matcher que contiene información sobre la búsqueda realizada.

El find()método devuelve verdadero si el patrón se encontró en la cadena y falso si no se encontró.



banderas

Los indicadores en el compile()método cambian la forma en que se realiza la búsqueda. Éstos son algunos de ellos:

  • Pattern.CASE_INSENSITIVE- Se ignorará el caso de las letras al realizar una búsqueda.
  • Pattern.LITERAL- Los caracteres especiales del patrón no tendrán ningún significado especial y se tratarán como caracteres normales al realizar una búsqueda.
  • Pattern.UNICODE_CASE- Úselo junto con la CASE_INSENSITIVEbandera para ignorar también el caso de letras fuera del alfabeto inglés

Patrones de expresiones regulares

El primer parámetro del Pattern.compile()método es el patrón. Describe lo que se busca.

Los corchetes se utilizan para encontrar un rango de caracteres:

Expression Description
[abc] Find one character from the options between the brackets
[^abc] Find one character NOT between the brackets
[0-9] Find one character from the range 0 to 9

Metacaracteres

Los metacaracteres son caracteres con un significado especial:

Metacharacter Description
| Find a match for any one of the patterns separated by | as in: cat|dog|fish
. Find just one instance of any character
^ Finds a match as the beginning of a string as in: ^Hello
$ Finds a match at the end of the string as in: World$
\d Find a digit
\s Find a whitespace character
\b Find a match at the beginning of a word like this: \bWORD, or at the end of a word like this: WORD\b
\uxxxx Find the Unicode character specified by the hexadecimal number xxxx

cuantificadores

Los cuantificadores definen cantidades:

Quantifier Description
n+ Matches any string that contains at least one n
n* Matches any string that contains zero or more occurrences of n
n? Matches any string that contains zero or one occurrences of n
n{x} Matches any string that contains a sequence of X n's
n{x,y} Matches any string that contains a sequence of X to Y n's
n{x,} Matches any string that contains a sequence of at least X n's

Nota: Si su expresión necesita buscar uno de los caracteres especiales, puede usar una barra invertida ( \ ) para escapar de ellos. En Java, las barras invertidas en las cadenas deben escaparse, por lo que se necesitan dos barras invertidas para escapar de los caracteres especiales. Por ejemplo, para buscar uno o más signos de interrogación puede utilizar la siguiente expresión: "\\?"