Java PatternSyntaxException Clase getIndex() Método con ejemplos

La clase Java PatternSyntaxException se define en el paquete java.util.regex y representa una 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,

public class PatternSyntaxException extends IllegalArgumentException

PatternSyntaxException::getIndex()

Este método se usa para recuperar el índice del error que se lanza como una excepción. La sintaxis se da a continuación,

Sintaxis:

public int getIndex()

Devuelve: Devuelve un entero no negativo: El índice en el patrón del error es -1 si no se puede recuperar el índice

Ejemplo 1: En este ejemplo, el error está en el índice 0 del patrón. Esto se debe al carácter no cerrado.  

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 index in the error of the pattern 
         System.out.println("Index: "+ e.getIndex());
         System.out.println("Message: "+ e.getMessage());
      }
    }
}
Producción

Index: 0
Message: Unclosed character class near index 0
[
^

Ejemplo 2: En este ejemplo, el método getIndex() devuelve -1. Esto se debe a que no se puede recuperar el índice debido a una repetición ilegal. 

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("Index: "+ e.getIndex());
         System.out.println("Message: "+ e.getMessage());
      }
    }
}
Producción

Index: -1
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 *