English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Iljava.util.regex.MatcherLa classe rappresenta un motore 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.
Se la corrispondenza è avvenuta, questo oggetto (Matcher) della classerequireEnd()Il metodo verifica l'opportunità di esistenza di un risultato di corrispondenza falso (se ci sono più input), se sì, questo metodo restituisce true, altrimenti restituisce false.
Ad esempio, se provi a utilizzare l'espressione regolare "you $" per corrispondere l'ultimo termine della stringa di input con te stesso e se la tua prima riga di input è "Ciao tu sei", potresti corrispondere, ma se accetti più frasi nuove righe l'ultimo termine della nuova riga potrebbe non essere la parola necessaria (cioè "tu"), rendendo il risultato della corrispondenza falso. In questo caso, ilrequiredEnd()
Il metodo restituisce true.
Anche se provi a corrispondere un carattere specifico nell'input, dì # e se la tua prima riga di input è "Ciao#Come va?", avrai una corrispondenza, più input dati possono modificare il contenuto del corrispondente, ma non cambiare il risultato, questo è vero. In questo caso, ilrequiredEnd()
Il metodo restituisce false.
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RequiredEndExample { public static void main( String args[] ) { String regex = "you$"; //Leggi l'input dell'utente Scanner sc = new Scanner(System.in); System.out.println("Inserisci il testo di input: "); String input = sc.nextLine(); //Istanziazione della classe Pattern Pattern pattern = Pattern.compile(regex); //Istanziazione della classe Matcher Matcher matcher = pattern.matcher(input); //Verifica se è avvenuta la corrispondenza if(matcher.find()) { System.out.println("Corrispondenza trovata"); } boolean result = matcher.requireEnd(); if(result) { System.out.println("Più input potrebbe rendere falso il risultato della corrispondenza"); } else { System.out.println("Il risultato della corrispondenza sarà vero, nonostante ulteriori dati"); } } }
Risultato dell'output
Inserisci il testo di input: Ciao, come ti trovi? Corrispondenza trovata Più input può rendere falso il risultato della corrispondenza
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RequiredEndExample { public static void main( String args[] ) { String regex = "[#]"; //Leggi l'input dell'utente Scanner sc = new Scanner(System.in); System.out.println("Inserisci il testo di input: "); String input = sc.nextLine(); //Istanziazione della classe Pattern Pattern pattern = Pattern.compile(regex); //Istanziazione della classe Matcher Matcher matcher = pattern.matcher(input); //Verifica se è avvenuta la corrispondenza if(matcher.find()) { System.out.println("Corrispondenza trovata"); } boolean result = matcher.requireEnd(); if(result) { System.out.println("Più input potrebbe rendere falso il risultato della corrispondenza"); } else { System.out.println("Il risultato della corrispondenza sarà vero, nonostante ulteriori dati"); } } }
Risultato dell'output
Inserisci il testo di input: Ciao# come stai Corrispondenza trovata Il risultato della corrispondenza sarà vero, nonostante ulteriori dati