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
- Kaj so regularni izrazi?
- Kaj je Java Regex?
- Razred tekmovalcev
- Razred vzorca
- Razred regularnih izrazov
- Merilniki regularnih izrazov
- Regex Metaharakterji
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 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 znakov | Opis |
---|---|
[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
Regex | Opis |
---|---|
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.
Regex | Opis |
---|---|
. | 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.