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