Java PatternSyntaxException Clase getDescription() Método con ejemplos

La clase Java PatternSyntaxException 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 utilizando 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 getDescription() de PatternSyntaxException

Java proporciona expresiones regulares o Regex (en resumen) API para crear patrones de string para buscar, manipular y editar una string en Java. Este método se utiliza para obtener la descripción del error en un patrón de expresión regular. Este método tiene la siguiente sintaxis,

Sintaxis:

error.getDescription()

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

Tipo de retorno: El tipo de retorno de este método es una string, es decir, una descripción 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 getDescription() en este objeto.

Java

// Java program to illustrate the working of getIndex()
// 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 description of the error occurred in
            // the pattern
            System.out.println("Description: "
                               + e.getDescription());
        }
    }
}
Producción

Description: Unclosed character class

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 getDescription() en este objeto.

Java

// Java program to illustrate the working of getIndex()
// 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 index in the error of the pattern
            System.out.println("Description: "
                               + e.getDescription());
        }
    }
}
Producción

Description: 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 *