Quali sono le espressioni regolari in Java?
In Java , Regex o Regular Expression è un'interfaccia del programma applicativo che aiuta a definire un modello per cercare, manipolare e modificare le stringhe. Le espressioni regolari Java sono ampiamente utilizzate nella convalida di password ed e-mail. Queste espressioni sono fornite dal pacchetto java.util.regex e sono composte da 1 interfaccia e 3 classi.
Le tre classi sono:
- Pattern: aiuta a definire i pattern.
- Matcher: usando i pattern, aiuta a eseguire le operazioni di match.
- PatternSyntaxException: aiuta a indicare un errore di sintassi.
Java Regex ha un'interfaccia nota come MatchResultInterface che aiuta a determinare il risultato dell'operazione di corrispondenza dell'espressione regolare.
Sintassi delle espressioni regolari in Java
Ora vediamo come scrivere un'espressione regolare in Java con l'aiuto di un programma.
Codice:
//Java program to demonstrate regular expressions
import java.util.regex.*;
public class RegExamples (
public static void main(String args())(
String A = " Happiness is " + " within yourself";
String B = ".*within.*";
// checks whether the string A contains the word 'within' and stores the result in matchcheck
boolean matchcheck = Pattern.matches(B, A);
//prints the result
System.out.println("Is there any string 'within' in the text ? \n " + matchcheck);
) )
Produzione:
Metodi comunemente usati nelle espressioni regolari
Esistono 3 metodi comunemente usati nelle espressioni regolari. Loro sono,
1. Metodi di indice
I metodi di indice offrono valori di indice che aiutano a mostrare con precisione dove è stata trovata la corrispondenza nella stringa fornita come input.
Metodo | Descrizione |
inizio() | Viene restituito l'indice iniziale della partita precedente. |
start (gruppo int) | Data la precedente sottosezione del gruppo, la sequenza viene acquisita e restituita. |
fine() | Viene restituito l'offset dopo la corrispondenza dell'ultimo carattere. |
Fine (gruppo int) | Data la precedente operazione di corrispondenza del gruppo, la sottosequenza viene catturata e sfalsata dopo la corrispondenza dell'ultimo carattere restituito. |
2. Metodi di studio
I metodi di studio controllano la stringa fornita come input e viene restituito un valore booleano che indica se il modello è stato trovato o meno.
Metodo | Descrizione |
lookingat () | Abbina la sequenza indicata come input rispetto al modello dall'inizio della regione. |
trova() | Trova la successiva sottosequenza della sequenza fornita come input rispetto al modello dall'inizio della regione. |
find (int start) | Reimposta il matcher e quindi trova la successiva sottosequenza della sequenza fornita come input rispetto al modello dall'indice specificato. |
partite () | Abbina il contenuto allo schema. |
3. Metodi di sostituzione
Metodi utilizzati per sostituire il testo in una stringa.
Metodo | Descrizione |
appendReplacement (StringBuffer s, Sostituzione stringa) | Verrà implementata una fase di aggiunta e sostituzione non terminale. |
appendTail (StringBuffer) | Verrà implementata un'appendice terminale e una fase di sostituzione. |
replaceAll (sostituzione stringa) | Sostituisci tutta la sottosequenza della sequenza indicata come input che corrisponde allo schema con una stringa di sostituzione. |
quoteReplacement (String s) | Verrà restituita una stringa di sostituzione letterale per la stringa menzionata. |
replaceFirst (sostituzione stringa) | Sostituisci la prima sottosequenza della sequenza indicata come input che corrisponde al modello con una stringa di sostituzione. |
Come definire un'espressione regolare in Java?
Esistono diversi modi in cui è possibile definire un'espressione regolare. Loro sono:
1. Letterali
Supponiamo che una stringa "hai" debba essere cercata in un testo "hai". Può essere fatto usando la sintassi.
Pattern.matches("hai", "hai")
2. Classi di caratteri
Corrisponde a ogni singolo carattere nel testo fornito come input a più caratteri consentiti nella classe di caratteri. Di seguito sono riportati i vari costrutti di classe.
Classe di caratteri | Spiegazione |
(PQR) | Corrisponde al testo se contiene p, qor che dovrebbe essere solo una volta. |
(PQR) | indica la negazione e per questo motivo, qui, vengono presi i caratteri singoli tranne p, q o r. |
(A-zA-Z) | sono considerati dalla a alla z e dalla A alla Z. |
(Annuncio (ps)) | da a a o da p a s. |
(A-dm-p) | Unione di entrambe le gamme. |
(Az && (PQR)) | dalla a alla z e (p, q o r). |
(Az && (PQ)) | dalla a alla z e anche, p, q non sono considerati. |
(Ad-z) | Esegue la sottrazione. |
(Az && (mp)) | dalla a alla z e non dalla m alla p. |
3. Metacaratteri
I metacaratteri si comportano come codici brevi nell'espressione regolare. Di seguito sono riportati alcuni dei metacaratteri comunemente utilizzati.
Espressione regolare | Spiegazione |
\ d | Qualsiasi cifra da 0 a 9. Può anche essere scritta come (0-9). |
\ D | Qualsiasi cifra non compresa tra 0 e 9. Può anche essere scritta come (0-9). |
\S | Carattere spazi bianchi o (\ t \ n \ x0B \ f \ r). |
\S | Carattere non bianco o (\ s). |
\ w | Carattere di parola o (a-zA-Z_0-9). |
\ W | Carattere non verbale o (\ w). |
\ b | Confine di parole. |
\ B | Confine non di parole. |
4. Quantificatori
I quantificatori menzionano il conteggio delle occorrenze di ciascun personaggio da abbinare alla stringa.
Espressione regolare | Spiegazione |
un? | Si verifica una volta o per niente. |
UN* | A si verifica 0 o più volte. |
A + | A si verifica 1 o più volte. |
Un) | A si verifica esattamente n volte. |
Un, ) | A si verifica n o più di quello. |
A (n, m) | A si verifica almeno n volte ma non dovrebbe essere più di m volte. |
Come creare espressioni regolari in Java?
Vediamo ora un programma Java con le espressioni regolari sopra menzionate.
Codice:
//Java program to demonstrate regular expressions
import java.util.regex.*;
public class RegExamples (
public static void main(String args())(
String str="hai";
// Returns true if string 1 matches string 2
System.out.println("Returns true if 'hai' matches 'Hai' :"+
Pattern.matches(str, "Hai")); //False
//Returns true if Hai or hai matches parameter 2
System.out.println("Returns true if 'Hai' or 'hai' matches 'Hai' : "+
Pattern.matches("(Hh)ai", "Hai")); //True
// Returns true if the string matches exactly "ann" or "Ann" or "jak" or "Jak"
System.out.println("Returns true if the string matches exactly 'ann' or 'Ann' or 'jak' or 'Jak' with 'Ann' : "+
Pattern.matches("(aA)nn|(jJ)ak", "Ann"));//True
//returns true if the string contains "with" at any place in the string
System.out.println("returns true if the string contains 'with' in the string 'within' : " +
Pattern.matches(".*with.*", "within"));//True
// returns true if the '9448anna' does not have number in the beginning
System.out.println( "returns true if the '9448anna' does not have number in the beginning : "+
Pattern.matches("^(^\\d).*", "9448anna")); //False
System.out.println("returns true if the '9448anna' does not have number in the beginning : " +
Pattern.matches("^(^\\d).*", "anna9448")); //True
)
)
Produzione:
Conclusione
Le espressioni regolari Java sono ampiamente utilizzate per applicazioni in tempo reale come la verifica di password ed e-mail. Queste espressioni sono API che definiscono modelli e offrono ricerca, modifica e molte altre operazioni nella stringa.
Articoli consigliati
Questa è una guida alle espressioni regolari in Java. Qui discutiamo come creare, come definire e metodi comunemente usati di espressioni regolari in Java. Puoi anche consultare i seguenti articoli per saperne di più -
- I 3 migliori compilatori di Java
- Espressioni regolari in JavaScript - Proprietà e metodi
- Sviluppo di app Java
- Metodi di matrice in Java con esempi
- Funzioni Regex in Python (esempio)