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()); } } }
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()); } } }
Description: Illegal repetition