Cos'è una Regex in Java?
Un'espressione regolare o regex è una sequenza di caratteri che formano uno schema. Quando cerchi dati puoi utilizzare questo modello specializzato per trovare stringhe corrispondenti. Può essere semplice come un singolo carattere o può essere uno schema più complesso. In Java, hai un pacchetto regex Java che contiene classi che forniscono la possibilità di utilizzare espressioni regolari per la ricerca e la manipolazione di pattern. Questo pacchetto viene importato nel codice nel modo seguente.import java.util.regex.*;
Java Regex - Corrispondente
import java.util.regex.Matcher;
Il pacchetto regex Java ha tre classi:
-
Classe Pattern : per definire il pattern che deve essere cercato.
-
Classe Matcher : per abbinare il modello nel testo e trovarlo.
-
Classe PatternSyntaxException : per indicare eventuali errori di sintassi nell'espressione regolare.
Metodi della classe Java Matcher
Alcuni dei metodi Java Matcher Class sono descritti di seguito.-
booleanmatch() — restituisce vero se l'espressione regolare corrisponde al modello.
-
boolean find() : trova la successiva espressione regolare che corrisponde al modello.
-
boolean find(int start) — trova la successiva espressione regolare che corrisponde al modello dall'inizio indicato.
-
int start() — restituisce l'indice iniziale della corrispondenza.
-
int end() — restituisce l'indice finale della corrispondenza restituita.
-
int groupCount() — restituisce il numero totale di gruppi nella partita.
-
String replaceAll(String replace) — sostituisce ogni sottosequenza della corrispondenza con la sostituzione data.
-
String replaceFirst(String replace) — sostituisce la prima sottosequenza della corrispondenza con la sostituzione data.
Esempio di corrispondenza Java
Esistono molti metodi utili per la classe Matcher , tuttavia esamineremo ulteriormente gli esempi specifici del metodomatch() .Utilizzando il metodomatch()
Di seguito viene illustrato un esempio di Java Matcher per il metodomatch() .import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
String regexPattern = "(.*)apple(.*)"; // this regex means that any char sequence can precede or succeed "apple"
String firstCheck = "Apples";
String secondCheck = "Apple";
String thirdCheck = "apple";
String fourthCheck = "An apple a day keeps the doctor away.";
String fifthCheck = "green apple, yellow apple, red apple, i love all kinds of apples.";
Pattern pattern = Pattern.compile(regexPattern);
Matcher matcher1 = pattern.matcher(firstCheck);
System.out.println("The Pattern is: " + pattern);
System.out.println("Text to check is: " + firstCheck);
System.out.println("Output for matches(): " + matcher1.matches() + "\n");
Matcher matcher2 = pattern.matcher(secondCheck);
System.out.println("The Pattern is: " + pattern);
System.out.println("Text to check is: " + secondCheck);
System.out.println("Output for matches(): " + matcher2.matches() + "\n");
Matcher matcher3 = pattern.matcher(thirdCheck);
System.out.println("The Pattern is: " + pattern);
System.out.println("Text to check is: " + thirdCheck);
System.out.println("Output for matches(): " + matcher3.matches() + "\n");
Matcher matcher4 = pattern.matcher(thirdCheck);
System.out.println("The Pattern is: " + pattern);
System.out.println("Text to check is: " + fourthCheck);
System.out.println("Output for matches(): " + matcher4.matches() + "\n");
Matcher matcher5 = pattern.matcher(fifthCheck);
System.out.println("The Pattern is: " + pattern);
System.out.println("Text to check is: " + fifthCheck);
System.out.println("Output for matches(): " + matcher5.matches() + "\n");
}
}
Produzione
GO TO FULL VERSION