Java Regex - Ce sunt expresiile regulate și cum se utilizează?



Java Regex este un API care este utilizat pentru a defini un model pentru căutarea sau manipularea șirurilor. Acest articol va vorbi, de asemenea, despre diferite clase de expresii regulate furnizate de Java.

Extragerea sau validarea datelor este un aspect important al fiecărui limbaj de programare. Una dintre cele mai populare modalități de validare a datelor este utilizarea expresiilor regulate. le foloseșteexpresii regulate pentru a descrie un tipar de caractere. Acest articol pe Java Regex va enumera diferitele metode de utilizare a expresiilor în următoarea succesiune:

Să începem!





algoritm de sortare fuzionare c ++

Ce sunt expresiile regulate?

LA Expresie uzuala este o secvență de caractere care construiește un model de căutare. Când căutați date într-un text, puteți utiliza acest model de căutare pentru a descrie ceea ce căutați.

Expresii regulate - Java Regex - Edureka



O expresie regulată poate fi a un singur personaj sau un model mai complicat. Poate fi folosit pentru orice tip de căutare text și operații de înlocuire a textului. Un model Regex constă din caractere simple, cum ar fi / abc / , sau o combinație de caractere simple și speciale, cum ar fi / ab * c / sau /example(d+).d*/ .

Ce este Java Regex?

Java Regex este un API cu care este obișnuit definiți un model pentru căutare sau manipulare . Este utilizat pe scară largă pentru a defini constrângerea asupra șirurilor, cum ar fi validarea parolei și a e-mailului.

Există diferite metode de utilizare a Java Regex. Deci, să mergem mai departe și să aruncăm o privire asupra diferitelor expresii.



Clasa Matcher

Această clasă este utilizată pentru a efectua operații de potrivire pe o secvență de caractere. Tabelul de mai jos reprezintă diferite metode ale clasei Matcher.

Metodă Descriere
meciuri booleene () Testează dacă expresia regulată dată se potrivește cu modelul
boolean find () Folosit pentru a găsi următoarea expresie care se potrivește cu modelul
găsire booleană (int start) Căutați următoarea expresie care se potrivește cu modelul din numărul de început dat
Grup de șiruri () Folosit pentru a returna subsecvența potrivită
int start () Returnează indexul de pornire al subsecvenței potrivite
intenționează() Returnează indexul final al subsecvenței potrivite
int groupCount () Returnează numărul total al subsecvenței potrivite

Clasa modelului

Pattern Class este o versiune compilată a expresiei regulate care este utilizată pentru a defini modelul pentru motorul regex.

Metodă Descriere
compilație de model static (regex șir) Compilează regexul dat și returnează instanța modelului
Meciuri meciuri (introducere CharSequence) Se folosește pentru a crea un potrivitor care să potrivească intrarea dată cu modelul
potriviri booleene statice (regex șir, intrare CharSequence) Funcționează ca o combinație de metode de compilare și potrivire. Compilează expresia regulată și potrivește intrarea dată cu modelul
String [] split (intrare CharSequence) Folosit pentru a împărți șirul de intrare dat în jurul meciurilor unui model dat
Șir de șir () Ajută la returnarea modelului regex

Să luăm acum un mic exemplu pentru a înțelege cum se scrie o expresie obișnuită.

import java.util.regex. * public class RegexExample {public static void main (String [] args) {Pattern pattern = Pattern.compile ('. xx.') Matcher matcher = pattern.matcher ('AxxB') System.out .println ('Șirul se potrivește cu Regexul dat - + matcher.matches ())}}

În acest caz, intern folosește Pattern și Matcher clase regex pentru a face procesarea, dar evident,reduce liniile de cod. Clasa de tipare conține, de asemenea, metoda potrivirilor care ia regex și input String ca argument și returnează un rezultat boolean după potrivirea lor. Deci, codul funcționează bine pentru potrivirea intrărilor cu o expresie regulată în Java. Prin urmare, ieșirea va fi adevărată așa cum se arată mai jos.

Ieșire:
Adevărat

Acum să vedem câteva alte categorii de expresii regulate Java.

Clasa de caractere Regex

Tabelul de mai jos reprezintă combinația diferită de clase de caractere.

Clasa personajuluiDescriere
[abc] a, b sau c (clasă simplă)
[^ abc] Orice personaj cu excepția a, b sau c (negație)
[a-zA-Z] de la a la z sau de la A la Z, inclusiv (interval)
[a-d [m-p]] de la a până la d, sau de la m la p: [a-dm-p] (uniune)
[a-z && [def]] d, e sau f (intersecție)
[a-z && [^ bc]] de la a la z, cu excepția lui b și c: [ad-z] (scădere)
[a-z && [^ m-p]] a până la z, și nu m până la p: [a-lq-z] (scădere)

Exemplu:

import java.util.regex. * public class CharacterExample {public static void main (String args []) {// false (nu x sau y sau z) System.out.println (Pattern.matches ('[xyz]', 'wbcd')) // true (printre x sau y sau z) System.out.println (Pattern.matches ('[xyz]', 'x')) // false (x și y vine de mai multe ori) Sistem .out.println (Pattern.matches ('[xyz]', 'xxyyyyyz'))}}

Cuantificatoare Regex

Cuantificatorii specifică numărul de apariții ale unui caracter. Tabelul de mai jos reprezintă diferiți cuantificatori.

RegexDescriere
X? X apare o dată sau deloc
X + X apare o dată sau de mai multe ori
X * X apare de zero sau de mai multe ori
X {n} X apare doar de n ori
X {n,} X apare de n sau de mai multe ori
X și Z} X apare de cel puțin y ori, dar mai puțin de z ori

Exemplu:

import java.util.regex. * public class Exemplu {public static void main (String args []) {System.out.println ('? quantifier ....') // (a sau y sau z vine odată) System.out.println (Pattern.matches ('[ayz]?', 'A')) // ieșire: adevărat System.out.println (Pattern.matches ('[ayz]?', 'Aaa')) / / (ay și z vine de mai multe ori) System.out.println (Pattern.matches ('[ayz]?', 'ayyyyzz')) // ieșire: false // (a vine de mai multe ori) Sistem. out.println (Pattern.matches ('[ayz]?', 'amnta')) // ieșire: false // (a sau y sau z trebuie să vină o dată) System.out.println (Pattern.matches ('[ ayz]? ',' ay ')) // ieșire: false System.out.println (' + cuantificator .... ') // (a sau y sau z o dată sau de mai multe ori) System.out.println (Pattern .matches ('[ayz] +', 'a')) // ieșire: adevărat // (a vine de mai multe ori) System.out.println (Pattern.matches ('[ayz] +', 'aaa' )) // outpu: true // (a sau y sau z vine de mai multe ori) System.out.println (Pattern.matches ([amn] + ',' aayyyzz ')) // output: true // (z și t nu se potrivesc cu modelul) System.out.println (Pat tern.matches ('[ayz] +', 'aammta')) // ieșire: false System.out.println ('* cuantificator ....') // (a sau y sau z pot veni zero sau de mai multe ori ) System.out.println (Pattern.matches ('[ayz] *', 'ayyyza')) // ieșire: true}}

Practic, va căuta cuantificatorul care se potrivește și se potrivește cu rezultatul căutării.

Regex Metacaractere

Metacaractere de expresie regulată funcționează ca coduri scurte. Să aruncăm o privire la tabelul de mai jos pentru a înțelege diferite tipuri de metacaractere.

RegexDescriere
. Poate fi orice caracter (poate sau nu să se potrivească cu terminatorul)
d Reprezintă orice cifre, în afară de [0-9]
D Reprezintă orice non-cifră, prescurtarea pentru [^ 0-9]
s Reprezintă orice caracter al spațiului alb, scurt pentru [tnx0Bfr]
S Poate fi un caracter care nu este un spațiu alb, scurt pentru [^ s]
în Poate fi un caracter de cuvânt, scurt pentru [a-zA-Z_0-9]
ÎN Reprezintă orice caracter care nu conține cuvânt, scurt pentru [^ w]
b Reprezintă o limită de cuvânt
B Este o limită fără cuvinte

Exemplu:

import java.util.regex. * public class MetacharExample {public static void main (String args []) {// d înseamnă cifre System.out.println ('metacaractere d ....') // (fără cifre) System.out.println (Pattern.matches ('d', 'abc')) // Ieșire: fals // (cifră și vine o dată) System.out.println (Pattern.matches ('d', '1') ) // Ieșire: adevărat // (cifră, dar vine de mai multe ori) System.out.println (Pattern.matches ('d', '4443')) // Ieșire: fals // (cifră și caracter) System.out .println (Pattern.matches ('d', '323abc')) // Ieșire: fals // D înseamnă System.out.print.println fără cifre ('metacaractere D ....') // (fără cifre, dar vine de mai multe ori) System.out.println (Pattern.matches ('D', 'abc')) // Ieșire: fals // Its a Digit System.out.println (Pattern.matches ('D', '1 ')) // Ieșire: false System.out.println (Pattern.matches (' D ',' 4443 ')) // Output: false // (cifră și caracter) System.out.println (Pattern.matches (' D ',' 323abc ')) // Ieșire: falsă // (fără cifre și vine o dată) System.out.println (Pattern.matches (' D ',' m ')) // Ieșire: true System.out .relatii cu publicul intln ('metacaractere D cu cuantificator ....') // (fără cifre și poate apărea de 0 sau mai multe ori) System.out.println (Pattern.matches ('D *', 'abc')) // Ieșire : Adevărat } }

Pe baza condițiilor menționate mai sus, va afișa ieșirea. Așa funcționează. Deci, a fost vorba despre diferite tipuri de Regex. Cu aceasta, ajungem la sfârșitul acestui articol. Eusper că ți s-a părut informativ. Dacă doriți să aflați mai multe, puteți consulta pagina noastră de asemenea.

Verificați de Edureka, o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul. Suntem aici pentru a vă ajuta cu fiecare pas din călătoria dvs., pentru a deveni o afară de aceste întrebări java interviu, venim cu un curriculum care este conceput pentru studenți și profesioniști care doresc să fie un dezvoltator Java.

roluri și responsabilități de administrator linux

Ai o întrebare pentru noi? Vă rugăm să îl menționați în secțiunea de comentarii a acestui articol „Java Regex” și vă vom contacta cât mai curând posibil.