Java Regex - kaj so regularni izrazi in kako jih uporabiti?



Java Regex je API, ki se uporablja za določanje vzorca za iskanje ali manipulacijo nizov. V tem članku bomo govorili tudi o različnih razredih regularnih izrazov, ki jih ponuja Java.

Pridobivanje ali preverjanje podatkov je pomemben vidik vsakega programskega jezika. Eden izmed najbolj priljubljenih načinov preverjanja veljavnosti podatkov je uporaba regularnih izrazov. uporablja teregularni izrazi za opis vzorca znakov. Ta članek o Java Regex bo naštela različne metode uporabe izrazov v naslednjem zaporedju:

kaj je binarno iskanje v javi

Začnimo!





Kaj so regularni izrazi?

TO Vsakdanje izražanje je zaporedje znakov, ki tvori iskalni vzorec. Ko iščete podatke v besedilu, lahko s tem vzorcem iskanja opišete, kaj iščete.

Regularni izrazi - Java Regex - Edureka



Regularni izraz je lahko a en sam znak ali bolj zapleten vzorec. Uporablja se lahko za vse vrste iskanja besedila in zamenjave besedila. Vzorec Regex je sestavljen iz preprostih znakov, kot so / abc / , ali kombinacija preprostih in posebnih znakov, kot je / ab * c / ali /example(d+).d*/ .

Kaj je Java Regex?

The Java Regex je API, ki je vajen določite vzorec za iskanje ali manipuliranje . Pogosto se uporablja za določanje omejitev za nize, kot sta preverjanje gesla in e-pošte.

Obstajajo različni načini uporabe Java Regex. Gremo torej naprej in si oglejmo različne izraze.



Razred tekmovalcev

Ta razred se uporablja za izvajanje postopkov ujemanja na zaporedju znakov. Spodnja tabela predstavlja različne metode razreda Matcher.

Metoda Opis
logična ujemanja () Preizkuša, ali se dani regularni izraz ujema z vzorcem
logična najdba () Uporablja se za iskanje naslednjega izraza, ki ustreza vzorcu
logična najdba (int začetek) Poišče naslednji izraz, ki ustreza vzorcu z dane začetne številke
Nizovna skupina () Uporablja se za vrnitev usklajene podsekvence
int start () Vrne začetni indeks ujemajoče se podsekvence
int end () Vrne končni indeks ujemajoče se podsekvence
int groupCount () Vrne skupno število ujemajočega se podsekvence

Razred vzorca

Razred vzorcev je prevedena različica regularnega izraza, ki se uporablja za definiranje vzorca za mehanizem regularnih izrazov.

Metoda Opis
statično prevajanje vzorca (niz regularnih izrazov) Zbere dani regularni izraz in vrne primerek vzorca
Ujema se z ujemanji (vnos CharSequence) Uporablja se za ustvarjanje ujemanja, ki se podanemu vnosu ujema z vzorcem
statična logična ujemanja (regularni izraz niza, vnos CharSequence) Deluje kot kombinacija metod prevajanja in ujemanja. Zbere regularni izraz in podani vnos ujema z vzorcem
String [] split (CharSequence input) Uporablja se za razdelitev danega vhodnega niza okoli ujemanj danega vzorca
Vzorec niza () Pomaga pri vrnitvi vzorca regularnih izrazov

Zdaj pa vzemimo majhen primer, da bomo razumeli, kako napisati regularni izraz.

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

V tem primeru interno uporablja Pattern in Matcher regex razredi za obdelavo, vendar očitno,zmanjšuje vrstice kode. Razred Pattern vsebuje tudi metodo ujemanja, ki kot argument vzame regularni izraz in vnese String, po ujemanju pa vrne logični rezultat. Koda torej dobro deluje za ujemanje vnosa z regularnim izrazom v Javi. Izhod bo torej resničen, kot je prikazano spodaj.

Izhod:
prav

Zdaj pa si oglejmo še nekaj kategorij regularnih izrazov Java.

Razred regularnih izrazov

Spodnja tabela predstavlja kombinacijo različnih razredov znakov.

Razred znakovOpis
[abc] a, b ali c (enostaven razred)
[^ abc] Kateri koli znak, razen a, b ali c (negacija)
[a-zA-Z] a do z ali vključno z A do Z (obseg)
[a-d [m-p]] od a do d ali m do p: [a-dm-p] (združitev)
[a-z && [def]] d, e ali f (križišče)
[a-z && [^ bc]] od a do z, razen b in c: [ad-z] (odštevanje)
[a-z && [^ m-p]] a do z in ne m do p: [a-lq-z] (odštevanje)

Primer:

import java.util.regex. * javni razred CharacterExample {public static void main (String args []) {// false (ne x ali y ali z) System.out.println (Pattern.matches ('[xyz]', 'wbcd')) // true (med x ali y ali z) System.out.println (Pattern.matches ('[xyz]', 'x')) // false (x in y pride večkrat) System .out.println (Pattern.matches ('[xyz]', 'xxyyyyyz'))}}

Merilniki regularnih izrazov

Kvantifikatorji določajo število pojavitev znaka. Spodnja tabela predstavlja različne količnike.

kako uporabljati Microsoft Visual Studio
RegexOpis
X? X se pojavi enkrat ali pa sploh ne
X + X se pojavi enkrat ali večkrat
X * X se pojavi nič ali večkrat
X {n} X se pojavi samo n-krat
X {n,} X se pojavi n ali večkrat
X in Z} X se pojavi vsaj y-krat, vendar manj kot z-krat

Primer:

import java.util.regex. * javni razred Primer {public static void main (String args []) {System.out.println ('? quantifier ....') // (a ali y ali z pride enkrat) System.out.println (Pattern.matches ('[ayz]?', 'A')) // output: true System.out.println (Pattern.matches ('[ayz]?', 'Aaa')) / / (ay in z pride več kot enkrat) System.out.println (Pattern.matches ('[ayz]?', 'ayyyyzz')) // output: false // (a pride večkrat) System. out.println (Pattern.matches ('[ayz]?', 'amnta')) // output: false // (a ali y ali z mora enkrat priti) System.out.println (Pattern.matches ('[ ayz]? ',' ay ')) // izhod: false System.out.println (' + kvantifikator .... ') // (a ali y ali z enkrat ali večkrat) System.out.println (vzorec .matches ('[ayz] +', 'a')) // output: true // (a pride večkrat) System.out.println (Pattern.matches ('[ayz] +', 'aaa' )) // outpu: true // (a ali y ali z pride večkrat) System.out.println (Pattern.matches ([amn] + ',' aayyyzz ')) // output: true // (z in t se ne ujemata z vzorcem) System.out.println (Pat tern.matches ('[ayz] +', 'aammta')) // output: false System.out.println ('* kvantifikator ....') // (a ali y ali z lahko pride nič ali večkrat ) System.out.println (Pattern.matches ('[ayz] *', 'ayyyza')) // izhod: true}}

kaj je __init__ v pythonu

V bistvu bo iskal ujemajoči se količnik in se ujemal z rezultatom iskanja.

Regex Metaharakterji

Metaznaki regularnega izraza delujejo kot kratke kode. Oglejmo si spodnjo tabelo, da bomo razumeli različne vrste metaznakov.

RegexOpis
. Lahko je kateri koli znak (lahko se ujema s terminatorjem ali ne)
d Predstavlja katere koli števke, kratke za [0-9]
D Predstavlja katero koli nedimestno kratico za [^ 0-9]
s Predstavlja kateri koli presledek, kratica za [tnx0Bfr]
S Lahko je znak, ki ni presledek, okrajšava od [^ s]
v Lahko je besedni znak, okrajšava od [a-zA-Z_0-9]
IN Predstavlja kateri koli nebesedni znak, okrajšava za [^ w]
b Predstavlja mejo besede
B To je nebesedna meja

Primer:

import java.util.regex. * javni razred MetacharExample {public static void main (String args []) {// d pomeni številko System.out.println ('metaznaki d ....') // (nedimestno) System.out.println (Pattern.matches ('d', 'abc')) // Izhod: false // (številka in pride enkrat) System.out.println (Pattern.matches ('d', '1') ) // Izhod: true // (številka, vendar večkrat) System.out.println (Pattern.matches ('d', '4443')) // Izhod: false // (številka in znak) System.out .println (Pattern.matches ('d', '323abc')) // Izhod: false // D pomeni nedomestno System.out.println ('metaznaki D ....') // (nedimestno, vendar prihaja večkrat) System.out.println (Pattern.matches ('D', 'abc')) // Izhod: false // To je Digit System.out.println (Pattern.matches ('D', '1 ')) // Izhod: napačno System.out.println (Pattern.matches (' D ',' 4443 ')) // Izhod: false // (številka in znak) System.out.println (Pattern.matches (' D ',' 323abc ')) // Izhod: false // (nedimestno in pride enkrat) System.out.println (Pattern.matches (' D ',' m ')) // Izhod: true System.out .pr intln ('metaznaki D s kvantifikatorjem ....') // (nedimestno in lahko pride 0 ali večkrat) System.out.println (Pattern.matches ('D *', 'abc')) // izhod : prav } }

Glede na zgoraj omenjene pogoje bo prikazal izhod. Tako deluje. Torej, to je bilo vse o različnih vrstah Regex. S tem smo prišli do konca tega članka. jazupam, da se vam je zdel informativen. Če želite izvedeti več, si oglejte našo prav tako.

Oglejte si Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, ki se širijo po vsem svetu. Tu smo, da vam pomagamo pri vsakem koraku na poti, saj smo poleg tega vprašanja za java intervjuji pripravili učni načrt, ki je zasnovan za študente in strokovnjake, ki želijo biti razvijalec Java.

Imate vprašanje za nas? Prosimo, omenite ga v oddelku za komentarje tega članka o 'Java Regex', in takoj, ko bo mogoče, se bomo oglasili.