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