Ce sunt expresiile regulate în Java?

În Java , Regex sau Regular Expression este o interfață de program de aplicație care ajută la definirea unui model pentru a căuta, manipula și edita șiruri. Expresiile Java normale sunt utilizate pe scară largă în validarea parolelor și a e-mailurilor. Aceste expresii sunt furnizate de pachetul java.util.regex și constă dintr-o interfață și 3 clase.

Cele trei clase sunt:

  1. Model: ajută la definirea tiparelor.
  2. Matcher: Folosind tiparele, ajută la efectuarea operațiunilor de potrivire.
  3. PatternSyntaxException: ajută la indicarea unei erori de sintaxă.

Java Regex are o interfață cunoscută sub numele de MatchResultInterface care ajută la determinarea rezultatului operației de potrivire a expresiei obișnuite.

Sintaxa de expresie regulată în Java

Acum să vedem cum se scrie o expresie obișnuită în Java cu ajutorul unui program.

Cod:

//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);
) )

ieşire:

Metode utilizate în mod obișnuit în expresii regulate

Există 3 metode utilizate frecvent în expresiile obișnuite. Sunt,

1. Metode de index

Metodele index oferă valori index care ajută la afișarea cu exactitate a locului în care s-a găsit potrivirea în șirul dat ca intrare.

Metodă Descriere
start()Indicele de început al meciului precedent este returnat.
start (int group)Având în vedere operațiunea precedentă a grupului de operațiune, subsecvența este capturată și returnată.
Sfârșit()Compensat după potrivirea cu ultimul personaj este returnat.
End (grup int)Având în vedere operațiunea anterioară a meciului grupului, subsecvența este capturată și compensată după ce se potrivește cu ultimul personaj returnat.

2. Metode de studiu

Metodele de studiu verifică șirul dat ca intrare și se returnează o valoare booleană care indică dacă modelul este găsit sau nu.

Metodă Descriere
uitandu-ma la()Potriviți secvența dată ca intrare cu modelul de la începutul regiunii.
găsi()Găsește următoarea secvență a secvenței date ca intrare cu modelul de la începutul regiunii.
find (int start)Resetează matcherul și apoi găsește următoarea secvență a secvenței date ca intrare cu modelul din indexul specificat.
chibrituri()Corespunde conținutului cu modelul.

3. Metode de înlocuire

Metode care sunt utilizate pentru a înlocui textul într-un șir.

Metodă Descriere
appendReplacement (StringBuffer s, Înlocuire șir)Va fi implementată o anexă non-terminală și o etapă de înlocuire.
appendTail (StringBuffer)Va fi implementată o anexă și o etapă de înlocuire a terminalului.
replaceAll (Înlocuire șir)Înlocuiți toate subsecvențele secvenței date ca intrare care se potrivește cu modelul cu un șir de înlocuire.
quoteReplacement (string)Un șir de înlocuire literal va fi returnat pentru șirul menționat.
replaceFirst (Înlocuire șir)Înlocuiți prima subsecvență a secvenței date ca intrare care se potrivește cu modelul cu un șir de înlocuire.

Cum să definiți expresia regulată în Java?

Există mai multe moduri în care poate fi definită o expresie regulată. Sunt:

1. Literale

Să presupunem că un șir „hai” trebuie căutat într-un text „hai”. Se poate face folosind sintaxa.

Pattern.matches("hai", "hai")

2. Clasele de caractere

Se potrivește fiecărui caracter din textul dat ca intrare cu mai multe caractere permise din clasa de caractere. Următoarele sunt diferitele construcții de clasă.

Clasa de caractere Explicaţie
(PQR)Corespunde textului dacă conține fie p, q sau r și ar trebui să fie o singură dată.
(PQR)denotă negația și datorită acestui lucru, aici, un singur caracter, cu excepția p, q sau r, sunt luate.
(A-zA-Z)se consideră a la z și A la Z.
(Ad (PS))a la d, sau p la s.
(A-dm-p)Unirea ambelor intervale.
(Az && (PQR))a la z și (p, q sau r).
(Az && (pq))a la z și, de asemenea, p, q nu sunt considerate.
(Ad-z)Efectuează scăderea.
(Az && (mp))a la z și nu m la p.

3. Metacharactere

Metacaracterele acționează ca coduri scurte în expresia obișnuită. Următoarele sunt unele dintre metacaractoarele utilizate frecvent.

Expresie uzuala Explicaţie
\ dOrice cifră de la 0 la 9. Poate fi scrisă și ca (0-9).
\ DOrice cifră care nu este de la 0 la 9. Poate fi scrisă la fel ca (0-9).
\ sCaracter de spațiu alb sau (\ t \ n \ x0B \ f \ r).
\ SCaracter sau spațiu alb (\ s).
\ wCaracter de cuvânt sau (a-zA-Z_0-9).
\ WCaracter fără cuvânt sau (\ w).
\ bLimita cuvântului.
\ BLimită non-cuvânt.

4. Cantificatorii

Cuantificatorii menționează numărul apariției fiecărui personaj care să se potrivească cu șirul.

Expresie uzuala Explicaţie
A?Se întâmplă o dată sau deloc.
A*A apare de 0 sau mai multe ori.
A +A apare de 1 sau mai multe ori.
Un)A apare exact de n ori.
Un, )A apare n sau mai mult de atât.
A (n, m)A apare de cel puțin n ori, dar nu trebuie să fie mai mare de m ori.

Cum să creați expresie regulată în Java?

Acum, să vedem un program java cu expresiile obișnuite menționate mai sus.

Cod:

//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
)
)

ieşire:

Concluzie

Expresiile periodice Java sunt utilizate pe scară largă pentru aplicații în timp real, precum verificarea parolei și a e-mailului. Aceste expresii sunt API-uri care definesc tiparele și oferă căutare, editare și alte câteva operații din șir.

Articole recomandate

Acesta este un ghid pentru expresii regulate în Java. Aici vom discuta despre cum se creează, cum se definește și se folosesc frecvent metode de expresii obișnuite în java. De asemenea, puteți consulta următoarele articole pentru a afla mai multe -

  1. Top 3 Cele mai bune compilatoare din Java
  2. Expresii regulate în JavaScript - Proprietăți și metode
  3. Dezvoltare de aplicații Java
  4. Metode Array în Java cu exemple
  5. Funcții Regex în Python (Exemplu)