Java Regex - što su regularni izrazi i kako ih koristiti?

Java Regex je API koji se koristi za definiranje uzorka za pretraživanje ili manipulaciju žicama. Ovaj će članak također govoriti o raznim razredima regularnih izraza koje nudi Java.

Izdvajanje ili provjera valjanosti podataka važan je aspekt svakog programskog jezika. Jedan od najpopularnijih načina provjere valjanosti podataka jest upotreba regularnih izraza. koristi overegularni izrazi za opisivanje uzorka likova. Ovaj članak na Java Regex navest će razne metode korištenja izraza u sljedećem slijedu:

Započnimo!





Što su regularni izrazi?

DO Redovito izražavanje je niz znakova koji grade obrazac pretraživanja. Kada tražite podatke u tekstu, možete koristiti ovaj obrazac pretraživanja za opisivanje onoga što tražite.

Regularni izrazi - Java Regex - Edureka



Regularni izraz može biti a jedan lik ili složeniji obrazac. Može se koristiti za bilo koju vrstu pretraživanja teksta i operacija zamjene teksta. Regex uzorak sastoji se od jednostavnih znakova, kao što su / abc / , ili kombinacija jednostavnih i posebnih znakova, poput / ab * c / ili /primjer(d+).d*/ .

print_r u php-u

Što je Java Regex?

The Java Regex je API koji je navikao na definirati obrazac za pretraživanje ili manipuliranje . Široko se koristi za definiranje ograničenja na nizove kao što su provjera valjanosti lozinke i e-pošte.

Postoje različite metode korištenja Java Regex-a. Krenimo dalje i pogledajte različite izraze.



Klasa podudaranja

Ova se klasa koristi za izvođenje operacija podudaranja na slijedu znakova. Ispod tablice predstavljene su razne metode klase Matcher.

Metoda Opis
logička podudaranja () Ispituje odgovara li zadani regularni izraz uzorku
logičko pronalaženje () Koristi se za pronalaženje sljedećeg izraza koji odgovara obrascu
logičko pronalaženje (int start) Traži sljedeći izraz koji odgovara uzorku s zadanog početnog broja
Nizovna skupina () Koristi se za vraćanje podudarne podsekcije
int start () Vraća početni indeks podudarne podsekcije
int kraj () Vraća završni indeks podudarne podsekvence
int groupCount () Vraća ukupan broj podudarne podsekcije

Klasa uzorka

Klasa uzorka je kompilirana verzija regularnog izraza koja se koristi za definiranje uzorka za regex engine.

Metoda Opis
statička kompilacija uzorka (String regex) Kompajlira zadani regularni izraz i vraća instancu Pattern
Podudara se s podudaranjima (unos CharSequence) Koristi se za stvaranje podudaranja koje odgovara zadanom unosu s uzorkom
statička logička podudaranja (regularni izraz niza, ulaz CharSequence) Djeluje kao kombinacija metoda kompajliranja i podudaranja. Kompajlira regularni izraz i podudara zadani ulaz s uzorkom
Niz [] podijeljen (unos CharSequence) Koristi se za razdvajanje datog ulaznog niza oko podudaranja određenog uzorka
Uzorak niza () Pomaže vratiti obrazac regularnog izraza

Uzmimo sada mali primjer kako bismo razumjeli kako napisati regularni izraz.

import java.util.regex. * javna klasa RegexExample {public static void main (String [] args) {Pattern pattern = Pattern.compile ('. xx.') Matcher matcher = pattern.matcher ('AxxB') System.out .println ('Niz se podudara s danim regularnim izrazom - + matcher.matches ())}}

U ovom slučaju, interno koristi Pattern i Matcher klase regularnih izraza za obradu, ali očito,smanjuje retke koda. Klasa uzoraka također sadrži metodu podudaranja koja uzima regularni izraz i unos String kao argument i vraća logički rezultat nakon podudaranja s njima. Dakle, kod dobro funkcionira za podudaranje unosa s Regularnim izrazom na Javi. Stoga će izlaz biti istinit kao što je prikazano u nastavku.

Izlaz:
pravi

Pogledajmo sada još nekoliko kategorija Java regularnih izraza.

Regex klasa znakova

Ispod tablice predstavljena je različita kombinacija klase znakova.

Klasa likovaOpis
[abc] a, b ili c (jednostavna klasa)
[^ abc] Bilo koji znak osim a, b ili c (negacija)
[a-zA-Z] a do z ili A do Z, uključujući (raspon)
[a-d [m-p]] od a do d ili od m do p: [a-dm-p] (spoj)
[a-z && [def]] d, e ili f (raskrižje)
[a-z && [^ bc]] od a do z, osim za b i c: [ad-z] (oduzimanje)
[a-z && [^ m-p]] a do z, a ne m do p: [a-lq-z] (oduzimanje)

Primjer:

import java.util.regex. * javna klasa CharacterExample {public static void main (String args []) {// false (ne x ili y ili z) System.out.println (Pattern.matches ('[xyz]', 'wbcd')) // true (među x ili y ili z) System.out.println (Pattern.matches ('[xyz]', 'x')) // false (x i y dolazi više puta) System .out.println (Pattern.matches ('[xyz]', 'xxyyyyyz'))}}

Regex kvantifikatori

Kvantifikatori određuju broj pojavljivanja znaka. Ispod tablice predstavljeni su razni kvantifikatori.

RegexOpis
X? X se javlja jednom ili nikako
X + X se javlja jednom ili više puta
X * X se javlja nula ili više puta
X {n} X se javlja samo n puta
X {n,} X se javlja n ili više puta
X i Z} X se javlja najmanje y puta, ali manje od z puta

Primjer:

import java.util.regex. * javna klasa Primjer {public static void main (String args []) {System.out.println ('? quantifier ....') // (a ili y ili z dolazi jednom) System.out.println (Pattern.matches ('[ayz]?', 'A')) // output: true System.out.println (Pattern.matches ('[ayz]?', 'Aaa')) / / (ay i z dolazi više puta) System.out.println (Pattern.matches ('[ayz]?', 'ayyyyzz')) // output: false // (a dolazi više puta) System. out.println (Pattern.matches ('[ayz]?', 'amnta')) // output: false // (a ili y ili z moraju doći jednom) System.out.println (Pattern.matches ('[ ayz]? ',' ay ')) // izlaz: false System.out.println (' + kvantifikator .... ') // (a ili y ili z jednom ili više puta) System.out.println (Uzorak .matches ('[ayz] +', 'a')) // output: true // (a dolazi više puta) System.out.println (Pattern.matches ('[ayz] +', 'aaa' )) // outpu: true // (a ili y ili z dolazi više puta) System.out.println (Pattern.matches ([amn] + ',' aayyyzz ')) // output: true // (z i t se ne podudaraju s uzorkom) System.out.println (Pat tern.matches ('[ayz] +', 'aammta')) // output: false System.out.println ('* kvantifikator ....') // (a ili y ili z mogu doći nula ili više puta ) System.out.println (Pattern.matches ('[ayz] *', 'ayyyza')) // izlaz: true}}

U osnovi, tražit će odgovarajući kvantifikator i odgovara rezultatima pretraživanja.

Regex metaznakovi

Metaznakovi regularnog izraza rade kao kratki kodovi. Pogledajmo donju tablicu kako bismo razumjeli razne vrste metaznaka.

RegexOpis
. To može biti bilo koji znak (može se podudarati ili ne podudarati s terminatorom)
d Predstavlja sve znamenke, kratke od [0-9]
D Predstavlja bilo koju neznamenkastu kraticu za [^ 0-9]
s Predstavlja bilo koji razmak, kratica za [tnx0Bfr]
S To može biti znak koji nije razmak, kratica od [^ s]
u To može biti znak riječi, skraćenica od [a-zA-Z_0-9]
U Predstavlja bilo koji znak koji nije riječ, kratica za [^ w]
b Predstavlja granicu riječi
B To je granica koja nije riječ

Primjer:

import java.util.regex. * javna klasa MetacharExample {public static void main (String args []) {// d znači znamenka System.out.println ('metaznakovi d ....') // (ne-znamenkasti) System.out.println (Pattern.matches ('d', 'abc')) // Izlaz: false // (znamenka i dolazi jednom) System.out.println (Pattern.matches ('d', '1') ) // Izlaz: true // (znamenka, ali dolazi više puta) System.out.println (Pattern.matches ('d', '4443')) // Izlaz: false // (znamenka i znak) System.out .println (Pattern.matches ('d', '323abc')) // Izlaz: false // D znači ne-znamenkasti System.out.println ('metaznakovi D ....') // (ne-znamenkasti, ali dolazi više puta) System.out.println (Pattern.matches ('D', 'abc')) // Izlaz: false // To je znamenka System.out.println (Pattern.matches ('D', '1 ')) // Izlaz: lažno System.out.println (Pattern.matches (' D ',' 4443 ')) // Izlaz: false // (znamenka i znak) System.out.println (Pattern.matches (' D ',' 323abc ')) // Izlaz: false // (neznamenkasti i dolazi jednom) System.out.println (Pattern.matches (' D ',' m ')) // Izlaz: true System.out .pr intln ('metaznakovi D s kvantifikatorom ....') // (ne-znamenkasti i mogu doći 0 ili više puta) System.out.println (Pattern.matches ('D *', 'abc')) // Izlaz : istina}}

Na temelju gore spomenutih uvjeta, prikazat će izlaz. Tako to djeluje. Dakle, to je bilo sve o raznim vrstama Regex. Ovim smo došli do kraja ovog članka. Janadam se da vam je bilo informativno. Ako želite saznati više, možete pogledati našu također.

Pogledajte Edureka, pouzdana tvrtka za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta. Ovdje smo da vam pomognemo u svakom koraku na putovanju, jer osim što postajete pitanja za ovaj intervju za javu, donosimo kurikulum koji je dizajniran za studente i profesionalce koji žele biti programer za Javu.

što su tokeni u javi

Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog članka o 'Java Regexu' i javit ćemo vam se što je prije moguće.