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

Java中具有示例的Matcher useTransparentBounds()方法

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, et peut être utilisée viamatches()par la méthode de la classe java.util.regex.Pattern/Obtenir un objet de cette classe.

Dans l'expression régulière, les constructions lookbehind et lookahead sont utilisées pour correspondre à un modèle spécifique avant ou après un autre modèle. Par exemple, si vous devez accepter5à12un caractère de chaîne, l'expression régulière sera-

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

Par défaut, les limites de la zone de matcher sont opaques pour les constructions de recherche avant, de recherche après et de correspondance de bordure, c'est-à-dire que ces constructions ne peuvent pas correspondre au contenu du texte d'entrée au-delà des limites de la zone.-

Exemple1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class useTransparentBoundsExample {
   public static void main(String[] args) {
      //L'expression régulière peut accepter6à10caractères
      String regex = "\\A(?=\\w{6,10}"z)";
      System.out.println("Entrer 5 à 12 caractères: ");
      String input = new Scanner(System.in).next();
      //Créer un objet Pattern
      Pattern pattern = Pattern.compile(regex);
      //Créer un objet Matcher
      Matcher matcher = pattern.matcher(input);
      //Définir la zone sur la chaîne d'entrée
      matcher.region(0, 4);
      //Passer à la zone transparente
      if(matcher.find()) {
         System.out.println("Correspondance trouvée");
      } else {
         System.out.println("Correspondance non trouvée");
      }
   }
}

Résultat de la sortie

Entrer 5 à 12 caractères:
sampleText
Match introuvé

Cette classede la méthodeuseTransparentBounds()La méthode accepte une valeur booléenne, si true est passé à cette méthode, le matcher actuel utilisera une plage transparente, si false est passé à cette méthode, une plage opaque sera utilisée.

Exemple2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
   public static void main(String[] args) {
      //L'expression régulière peut accepter6à10caractères
      String regex = "\\A(?=\\w{6,10}"z)";
      System.out.println("Entrer 5 à 12 caractères: ");
      String input = new Scanner(System.in).next();
      //Créer un objet Pattern
      Pattern pattern = Pattern.compile(regex);
      //Créer un objet Matcher
      Matcher matcher = pattern.matcher(input);
      //Définir la zone sur la chaîne d'entrée
      matcher.region(0, 4);
      //Passer à la zone transparente
      matcher = matcher.useTransparentBounds(true);
      if(matcher.find()) {
         System.out.println("Correspondance trouvée");
      } else {
         System.out.println("Correspondance non trouvée");
      }
   }
}

Résultat de la sortie

Entrer 5 à 12 caractères:
texteéchantillon
Correspondance trouvée