English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Méthode hasTransparentBounds () avec exemple dans Matcher en Java

La classe java.util.regex.Matcher représente le moteur d'exécution de diverses opérations de correspondance. Cette classe n'a pas de constructeur, elle peut être utiliséematches()La méthode create de la classe java.util.regex.Pattern/Obtenir l'objet de cette classe.

Dans l'expression régulière, les constructions lookbehind et lookahead sont utilisées pour correspondre à des modèles spécifiques avant ou après d'autres modèles. Par exemple, si vous devez accepter5à12caractères de la chaîne, l'expression régulière est-

\\\\A(?=\\w{6,10}\\z)";

Par défaut, les limites de la zone de correspondance sont opaques pour les correspondances avant, après et aux limites, c'est-à-dire que ces structures ne peuvent pas correspondre au contenu du texte d'entrée en dehors de la zone.-

Cette classeLa méthodehasTransparentBounds()La méthode vérifie si le matcher actuel utilise des limites transparentes, si c'est le cas, retourne true, sinon retourne false.

Exemple1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HasTransparentBounds {
   public static void main(String[] args) {
      //L'expression régulière peut accepter6à10caractère
      String regex = \\\\A(?=\\w{6,10}\\z)";
      System.out.println("Enter 5 à 12 characters: ");
      String input = new Scanner(System.in).next();
      //Créer un objet modèle
      Pattern pattern = Pattern.compile(regex);
      //Créer un objet Matcher
      Matcher matcher = pattern.matcher(input);
      //Définir la zone en tant que chaîne d'entrée
      matcher.region(0, 4);
      if(matcher.find()) {
         System.out.println("Correspondance trouvée");
      } else {
         System.out.println("Correspondance non trouvée");
      }
      boolean bool = matcher.hasTransparentBounds();
      //Passer à la plage transparente
      if(bool) {
         System.out.println("Le matcher actuel utilise des limites transparentes");
      } else {
         System.out.println("Le matcher actuel utilise des limites transparentes");-limites transparentes");
      }
   }
}

Résultat de la sortie

Entrer 5 à 12 caractères:
sampletext
Match not found
Current matcher user non-bordure transparente

Exemple2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HasTransparentBounds {
   public static void main(String[] args) {
      //L'expression régulière peut accepter6à10caractère
      String regex = \\\\A(?=\\w{6,10}\\z)";
      System.out.println("Enter 5 à 12 characters: ");
      String input = new Scanner(System.in).next();
      //Créer un objet modèle
      Pattern pattern = Pattern.compile(regex);
      //Créer un objet Matcher
      Matcher matcher = pattern.matcher(input);
      //Définir la zone en tant que chaîne d'entrée
      matcher.region(0, 4);
      matcher.useTransparentBounds(true);
      if(matcher.find()) {
         System.out.println("Correspondance trouvée");
      } else {
         System.out.println("Correspondance non trouvée");
      }
      boolean bool = matcher.hasTransparentBounds();
      //Passer à la plage transparente
      if(bool) {
         System.out.println("Le matcher actuel utilise des limites transparentes");
      } else {
         System.out.println("Le matcher actuel utilise des limites transparentes");-limites transparentes");
      }
   }
}

Résultat de la sortie

Entrer 5 à 12 caractères:
sampletext
Correspondance trouvée
Le matcher actuel utilise des limites transparentes