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

Metodo hasAnchoringBounds() con esempio in Java

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.

Esempio 1

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

Esempio 2

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