Java PatternSyntaxException Clase getMessage() Método con ejemplos

Java proporciona expresiones regulares o Regex (en resumen) API para crear patrones de string para buscar, manipular y editar una string en Java. Esta clase se define en el paquete java.util.regex y se centra en la excepción no verificada que significa un error de sintaxis en un patrón de expresión regular. Esta clase se puede declarar usando la siguiente sintaxis,

Sintaxis:

public class PatternSyntaxException extends IllegalArgumentException

Esta clase tiene el siguiente constructor:

PatternSyntaxException(String desc, String regex, int index) // It instantiates a new object of this class

Método getMessage() de PatternSyntaxException

Este método devuelve una string de varias líneas que contiene una descripción detallada del error de sintaxis en un patrón de expresión regular y su índice, el error en el patrón de expresión regular. También describe la indicación del índice de error dentro del patrón en un formato visual. Este método se puede invocar en el objeto instanciado de la clase PatternSyntaxException utilizando la siguiente sintaxis.

Sintaxis:

error.getMessage()

Aquí, un error es un objeto de la clase PatterSyntaxException

Tipo de devolución: este método devuelve una string de varias líneas, es decir, una descripción detallada del error.

Ejemplo 1: En este ejemplo, hemos definido un patrón invocando el método compile() de la clase Pattern. Acepta expresión regular (“[“) como argumento y genera un patrón. Luego, estamos llamando al método matcher() en el objeto instanciado de la clase Pattern. Acepta entrada como parámetro. Esto verificará la expresión regular (patrón) en la string de entrada. Además, hemos llamado al método replaceAll() en el objeto comparador. Esto reemplazará cada subsecuencia de la secuencia de entrada que coincida con el patrón por la string de reemplazo dada.

Tenga en cuenta que hemos incluido estas declaraciones dentro de un bloque Try. En este caso, arrojará un error de sintaxis en el patrón de expresión regular y eso se maneja a través del bloque catch. El bloque catch acepta el objeto de la clase PatternSyntaxException y, finalmente, hemos invocado el método getMessage() en este objeto.

Java

// Java program to illustrate the
// working of getMessage() method
 
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
 
class GFG {
 
    private static String regularExpression = "[";
    private static String input
        = "GeeksforGeeks "
          + "is a learning platform.";
    private static String replace = "Hi";
 
    public static void main(String[] args)
    {
 
        try {
            // Compile the pattern
            Pattern pattern
                = Pattern.compile(regularExpression);
 
            // To get a matcher object
            Matcher matcher = pattern.matcher(input);
            input = matcher.replaceAll(replace);
        }
        catch (PatternSyntaxException e) {
 
            // Print the message of the error occurred in
            // the pattern
            System.out.println("Message: "
                               + e.getMessage());
        }
    }
}
Producción

Message: Unclosed character class near index 0
[
^

Ejemplo 2: En este ejemplo, hemos definido un patrón invocando el método compile() de la clase Patrón. Acepta expresión regular (“{“) como argumento y genera un patrón. Luego, estamos llamando al método matcher() en el objeto instanciado de la clase Pattern. Acepta entrada como parámetro. Esto verificará la expresión regular (patrón) en la string de entrada que es igual a «Geeks» + «es una plataforma de aprendizaje». Además, hemos llamado al método replaceAll() en el objeto comparador. Esto reemplazará cada subsecuencia de la secuencia de entrada que coincida con el patrón por la string de reemplazo dada.

Tenga en cuenta que hemos incluido estas declaraciones dentro de un bloque Try. En este caso, arrojará un error de sintaxis en el patrón de expresión regular y eso se maneja a través del bloque catch. El bloque catch acepta el objeto de la clase PatternSyntaxException y, finalmente, hemos invocado el método getMessage() en este objeto.

Java

// Java program to illustrate the
// working of getMessage() method
 
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
 
class GFG {
 
    // Declaring a string variable to store the regular
    // expression
    private static String regularExpression = "{";
    private static String input
        = "GeeksforGeeks "
          + "is a learning platform.";
    private static String replace = "Hello";
 
    public static void main(String[] args)
    {
 
        try {
 
            // Compile the pattern
            Pattern pattern
                = Pattern.compile(regularExpression);
 
            // To get a matcher object
            Matcher matcher = pattern.matcher(input);
            input = matcher.replaceAll(replace);
        }
        catch (PatternSyntaxException e) {
 
            // Print the message of the error occurred in
            // the pattern
            System.out.println("Message: "
                               + e.getMessage());
        }
    }
}
Producción

Message: Illegal repetition
{

Publicación traducida automáticamente

Artículo escrito por bhuwanesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *