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:
- Model: ajută la definirea tiparelor.
- Matcher: Folosind tiparele, ajută la efectuarea operațiunilor de potrivire.
- 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 |
\ d | Orice cifră de la 0 la 9. Poate fi scrisă și ca (0-9). |
\ D | Orice cifră care nu este de la 0 la 9. Poate fi scrisă la fel ca (0-9). |
\ s | Caracter de spațiu alb sau (\ t \ n \ x0B \ f \ r). |
\ S | Caracter sau spațiu alb (\ s). |
\ w | Caracter de cuvânt sau (a-zA-Z_0-9). |
\ W | Caracter fără cuvânt sau (\ w). |
\ b | Limita cuvântului. |
\ B | Limită 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 -
- Top 3 Cele mai bune compilatoare din Java
- Expresii regulate în JavaScript - Proprietăți și metode
- Dezvoltare de aplicații Java
- Metode Array în Java cu exemple
- Funcții Regex în Python (Exemplu)