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:

  1. Pattern: aiuta a definire i pattern.
  2. Matcher: usando i pattern, aiuta a eseguire le operazioni di match.
  3. 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
\ dQualsiasi cifra da 0 a 9. Può anche essere scritta come (0-9).
\ DQualsiasi cifra non compresa tra 0 e 9. Può anche essere scritta come (0-9).
\SCarattere spazi bianchi o (\ t \ n \ x0B \ f \ r).
\SCarattere non bianco o (\ s).
\ wCarattere di parola o (a-zA-Z_0-9).
\ WCarattere non verbale o (\ w).
\ bConfine di parole.
\ BConfine 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ù -

  1. I 3 migliori compilatori di Java
  2. Espressioni regolari in JavaScript - Proprietà e metodi
  3. Sviluppo di app Java
  4. Metodi di matrice in Java con esempi
  5. Funzioni Regex in Python (esempio)

Categoria: