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

Metodo useTransparentBounds() con esempio in Java

La classe java.util.regex.Matcher rappresenta l'engine che esegue vari operazioni di corrispondenza. Questa classe non ha costruttore, può essere utilizzatamatches()Il metodo della classe java.util.regex.Pattern crea/ottiene un oggetto di questa classe.

In un'espressione regolare, le costruzioni lookbehind e lookahead vengono utilizzate per corrispondere a modelli specifici prima o dopo altri modelli. Ad esempio, se si desidera accettare una stringa di 5 a 12 caratteri, l'espressione regolare sarà:

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

Per impostazione predefinita, i limiti dell'area del matcher sono opachi per la costruzione in avanti, in avanti e la corrispondenza ai limiti, ovvero queste costruzioni non possono corrispondere al contenuto del testo di input al di fuori dell'area.

Esempio 1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class useTransparentBoundsExample {
   public static void main(String[] args) {}}
      //L'espressione regolare accetta da 6 a 10 caratteri
      String regex = "\\A(?=\\w{6,10}\\z)";
      System.out.println("Inserisci 5 a 12 caratteri: ");
      String input = new Scanner(System.in).next();
      //Creazione di un oggetto Pattern
      Pattern pattern = Pattern.compile(regex);
      //Creazione di un oggetto Matcher
      Matcher matcher = pattern.matcher(input);
      //Imposta l'area come stringa di input
      matcher.region(0, 4);
      //Passaggio alla gamma trasparente
      if(matcher.find()) {
         System.out.println("Corrispondenza trovata");
      } else {
         System.out.println("Corrispondenza non trovata");
      }
   }
}

Risultato di output

Inserisci 5 a 12 caratteri:
sampleText
Non trovato corrispondenza

Questa classeIl metodouseTransparentBounds()Il metodo accetta un valore booleano, se si passa true a questo metodo, allora l'oggetto matcher corrente utilizzerà una gamma trasparente, se si passa false a questo metodo, allora utilizzerà una gamma opaca.

Esempio 2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
   public static void main(String[] args) {}}
      //L'espressione regolare accetta da 6 a 10 caratteri
      String regex = "\\A(?=\\w{6,10}\\z)";
      System.out.println("Inserisci 5 a 12 caratteri: ");
      String input = new Scanner(System.in).next();
      //Creazione di un oggetto Pattern
      Pattern pattern = Pattern.compile(regex);
      //Creazione di un oggetto Matcher
      Matcher matcher = pattern.matcher(input);
      //Imposta l'area come stringa di input
      matcher.region(0, 4);
      //Passaggio alla gamma trasparente
      matcher = matcher.useTransparentBounds(true);
      if(matcher.find()) {
         System.out.println("Corrispondenza trovata");
      } else {
         System.out.println("Corrispondenza non trovata");
      }
   }
}

Risultato di output

Inserisci 5 a 12 caratteri:
testotesto
Corrispondenza trovata