Java Regex - Classe PatternSyntaxException

introduction

le java.util.regex.PatternSyntaxException class représente une exception non vérifiée lancée pour indiquer une erreur de syntaxe dans un modèle d'expression régulière.

Déclaration de classe

Voici la déclaration pour java.util.regex.PatternSyntaxException classe -

public class PatternSyntaxException
   extends IllegalArgumentException

Constructeurs

Sr.Non Méthode et description
1 PatternSyntaxException(String desc, String regex, int index)

Construit une nouvelle instance de cette classe.

Méthodes de classe

Sr.Non Méthode et description
1 String getDescription()

Récupère la description de l'erreur.

2 int getIndex()

Récupère l'index d'erreur.

3 String getMessage()

Renvoie une chaîne multiligne contenant la description de l'erreur de syntaxe et son index, le modèle d'expression régulière erroné et une indication visuelle de l'index d'erreur dans le modèle.

4 String getPattern()

Récupère le modèle d'expression régulière erroné.

Méthodes héritées

Cette classe hérite des méthodes des classes suivantes -

  • Java.lang.Throwable
  • Java.lang.Object

Exemple

L'exemple suivant montre l'utilisation des méthodes de classe java.util.regex.Pattern.PatternSyntaxException.

package com.tutorialspoint;

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

public class PatternSyntaxExceptionDemo {
   private static String REGEX = "[";
   private static String INPUT = "The dog says meow " + "All dogs say meow.";
   private static String REPLACE = "cat";

   public static void main(String[] args) {
      try{
         Pattern pattern = Pattern.compile(REGEX);
         
         // get a matcher object
         Matcher matcher = pattern.matcher(INPUT); 
         INPUT = matcher.replaceAll(REPLACE);
      } catch(PatternSyntaxException e){
         System.out.println("PatternSyntaxException: ");
         System.out.println("Description: "+ e.getDescription());
         System.out.println("Index: "+ e.getIndex());
         System.out.println("Message: "+ e.getMessage());
         System.out.println("Pattern: "+ e.getPattern());
      }
   }
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

PatternSyntaxException: 
Description: Unclosed character class
Index: 0
Message: Unclosed character class near index 0
[
^
Pattern: [