English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La classe java.util.regex.Matcher rappresenta il motore che esegue vari operazioni di corrispondenza. Questa classe non ha costruttore, puoi creare/ottenere un oggetto di questa classe utilizzando il metodo matchs() della classe java.util.regex.Pattern.
I limiti di ancoraggio sono utilizzati per la corrispondenza dell'area, ad esempio ^ e $. Per impostazione predefinita, il matcher utilizza i limiti di ancoraggio, puoi passare da un utilizzo dei limiti di ancoraggio a uno senza utilizzando il metodo useAnchoringBounds().
Questa classe (Matcher)hasAnchoringBounds()Il metodo verifica se il matcher utilizza i limiti di ancoraggio (se lo fa), altrimenti restituisce true, altrimenti restituisce false.
import java.util.regex.Matcher; import java.util.regex.Pattern; public class HasAnchoringBoundsExample { public static void main(String[] args) { String regex = (.*)(\\d+)(.*) String input = Questo è un esempio di testo, 1234, con numeri in mezzo. + Questa è la seconda riga del testo + Questo è la terza riga del testo //Creare un oggetto di modello Pattern pattern = Pattern.compile(regex); //Creazione di un oggetto Matcher Matcher matcher = pattern.matcher(input); //Verifica dei limiti di ancoraggio boolean bool = matcher.hasAnchoringBounds(); //Verifica della corrispondenza if(bool) { System.out.println("Il matcher corrente utilizza limiti ancorati"); } else { System.out.println("Il matcher corrente utilizza limiti non ancorati"); } if(matcher.matches()) { System.out.println("Corrispondenza trovata"); } else { System.out.println("Corrispondenza non trovata"); } } }
Risultato di output
Il matcher corrente utilizza i limiti di ancoraggio Corrispondenza non trovata
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Trail { public static void main(String args[]) { //Lettura di un valore di stringa Scanner sc = new Scanner(System.in); System.out.println("Inserisci stringa di input"); String input = sc.nextLine(); //Espressione regolare per trovare numeri String regex = ".*\\d+.*"; //Compilazione dell'espressione regolare Pattern pattern = Pattern.compile(regex); //Stampa dell'espressione regolare System.out.println("Espressione regolare compilata: " + pattern.toString()); //Estrazione dell'oggetto matcher Matcher matcher = pattern.matcher(input); matcher.useAnchoringBounds(false); boolean hasBounds = matcher.hasAnchoringBounds(); if(hasBounds) {}} System.out.println("Il matcher corrente utilizza limiti ancorati"); } else { System.out.println("Il matcher corrente utilizza limiti non ancorati"); } //Verificando se è avvenuto un match if(matcher.matches()) { System.out.println("Stringa fornita contiene numeri"); } else { System.out.println("Stringa fornita non contiene numeri"); } } }
Risultato di output
Inserisci stringa di input hello campione 2 Espressione regolare compilata: .*\d+.* Il matcher corrente utilizza limiti non ancorati Stringa fornita contiene numeri