Rad s regularnim izrazima u Javi

Sadržaj
U današnjim informacijskim sustavima normalno je vidjeti funkcije pretraživanja, te funkcije treba svaki put obraditi uzorcima od mnogih drugih kompleksa. Da bi se mogao razmotriti svaki slučaj posebno, potrebno je nekoliko tisuća godina, zbog čega su razvijeni mehanizmi koji omogućuju uspostavu formuliranog prikaza pretraživanja.
Ove formule se mogu pronaći u regularni izrazi, koji nam omogućuju da uspostavimo obrasce za procjenu tekstualnih nizova i vratimo pozitivnu ili negativnu vrijednost ako navedeni niz odgovara ili ne izraženoj formuli.
U Java Regularne izraze možemo implementirati na jednostavan način, ali to zahtijeva prilično opsežnu studiju od strane razvojnog programera kako bi mogao naučiti različite elemente koje on ima.
Način na koji možemo izraziti formule pomoću kojih možemo testirati naše obrasce s određenom konstrukcijom koda, nazvat ćemo to sintaksa regularnog izraza.
Što nam sintaksa dopušta?Ono što nam sintaksa dopušta je uspostavljanje uzoraka prema vrsti znak, količina, kombinacija karaktera i količina, počnite s određenim elementom, postavite izraz za središte formule i kraj. Time možemo identificirati vrlo specifične obrasce koji bi mogli biti potrebni u našem programu ili možda filtrirati na prikladniji način pretraživanje po tekstu ili bazi podataka.
Pogledajmo u nastavku mali popis elemenata koji se najčešće koriste u regularnim izrazima s Java, ima mnogo više elemenata od onih prikazanih u ovom vodiču, pa se preporučuje da sami istražite kako biste pojačali znanje:
Početak linije\^ Ovim elementom nastavljamo ukazivati ​​na Java koji započinje redak u regularnom izrazu.
Kraj linije$ Ovim simbolom označavamo da smo završili liniju.
Popis likova[] Zagradama označavamo regularnom izrazu da bi trebao tražiti bilo koji unutarnji popis.
Isključiti[\^] Omogućuje nam odabir bilo kojeg znaka koji nije na popisu.
Kvantifikator{j, k} Pronađite ono što je unutra j koliko je puta navedeno k; {j,} u ovom drugom slučaju, sve što se nalazi j jedan ili više puta; konačno {j} označava da bi se trebalo pojaviti ono što je u j samo jednom.
Riječni likovi\ w Pronađite znakove koji pripadaju riječ, ali ako koristimo \ W radi suprotno, locira znakove koji ne pripadaju.
Znamenke\ d Omogućuje nam slaganje samo s znamenkama i ako ih koristimo \ D podudarat ćemo se sa svime što nije znamenka ili brojčani znak.
Praznine\ s Omogućuje nam usklađivanje praznih mjesta kao što su kartice, razmaknica, ali ako ih koristimo \ S čini suprotno, podudara se sa svime što nije bijeli prostor.
Kao što vidimo s ovih nekoliko elemenata, možemo izgraditi različite kombinacije pomoću kojih možemo dobiti relativno složene uzorke.
Ako želimo probati jedan regularna fraza Prije sastavljanja programa možemo koristiti stranicu rubular.com na kojoj možemo ocijeniti obrasce u stvarnom vremenu.

POVEĆAJTE

Izvest ćemo jednostavan primjer gdje ćemo testirati a regularni izraz za provjeru valjanosti e -pošte, koristit ćemo sljedeće:
[_ a-z0-9-] + (\. [_ a-z0-9-] +) * @ [a-z0-9-] + (\. [a-z0-9-] +) * (\. [az] {2,3}) $

Prvo moramo unijeti regularni izraz u prvo polje oblika stranice rubular.com zatim u polju tzv vaš ispitni niz je mjesto gdje ćemo testirati različite e -poruke kako bismo provjerili funkcionira li regularni izraz, da vidimo kako se validator ponaša kada unesemo nevažeću e -adresu:

POVEĆAJTE

Kao što vidimo, u našem primjeru e -pošti nedostaje točka, pa je nevažeća i nije ne generira podudaranje Pomoću regularnog izraza ispravit ćemo ga postavljanjem točke koja nedostaje, a validator automatski generira pozitivan odgovor dopuštajući nam da vidimo da naš regularni izraz radi bez ikakvih problema.

POVEĆAJTE

Kao što vidimo, ovo je vrlo koristan resurs kada učimo koristiti regularne izraze ne samo u Java ako ne na bilo kojem jeziku.
Kad saznamo što čini svaki od osnovnih elemenata sintakse, sada moramo naučiti kako možemo napraviti a traženje uzorka unutar Java, s ovim možemo vidjeti koje metode, klase i paketi dolaze u obzir kada koristimo regularne izraze.
Prva stvar koju bismo trebali znati je da su svi ti alati u paketu java.util.regex, pa da bismo radili ove primjere moramo uključiti ovaj paket na početak naših satova.
Nakon što je gore navedeno učinjeno, možemo testirati uzorak na sljedeći način:
 if (ourString.matches (ourExpression)) {// Ako se ovdje podudara, izvršavamo kôd} 

Vidimo da koristimo metodu šibice (), ovo će procijeniti niz znakova prema regularnom izrazu i vratiti pravi ili lažno, u slučaju da niz znakova odgovara uzorku ili ne.
Ova je vrsta upotrebe dobra u malim provjerama, no ako ćemo koristiti ponavljajuću provjeru, to jest, pojavit će se mnogo puta unutar našeg programa, najbolje je napraviti malu rutinu ili klasu koja nam omogućuje procjenu niza parametarskog oblika, to jest rutine ili metode koja nam omogućuje da unesemo niz i vratimo točno ili netočno, već u usporedbi s određenim uzorkom.
U sljedećem programu testirat ćemo mali uzorak i ocijenit ćemo ga u odnosu na nekoliko nizova, a program će nam reći koji od njih radi. utakmica, odnosno koji se podudara, a koji ne, da vidimo kod, a zatim ćemo vidjeti kako to radi:
 uvoz java.util.regex. *; javni razred TestPatterns {public static void main (String [] argv) {String pattern = "Q [u] \ d + \."; String [] input = {"QA777. Je li identifikator našeg proizvoda.", "Quack, Quack, Quack!" }; Uzorak p = Uzorak.kompilacija (uzorak); for (String in: input) {boolean found = p.matcher (in) .lookingAt (); System.out.println ("'" + pattern + "'" + (pronađeno? "Podudara se": "ne podudara se s" ") + u +" '"); }}} 

Ovdje vidimo kako prvo moramo uvesti paket koji je spomenut na početku ovog odjeljka, kako bismo na ovaj način dobili funkcionalnosti pretraživanja pomoću regularnih izraza. Zatim izrađujemo uzorak koji ćemo koristiti kao naš program, u ovom slučaju to je uzorak koji odgovara slovu „P"Onda mora imati bilo koji znak osim slova"ili”I mora završiti točkom. Zatim sastavljamo naš uzorak pomoću metode sastaviti i možemo ga upotrijebiti za izradu šibica. Konačno, ako se uzorak podudara, ispisuje se s riječju podudarati inače tiskamo ne podudara se.
Pogledajmo na sljedećoj slici kako ovo izgleda kada pokrenemo program:

POVEĆAJTE

Zatim primjećujemo, kao što je objašnjeno, prvi niz ili lanac ako se podudara, ali drugi ne, te radi daljnje reference postavljamo uzorak na kojem treba napraviti usporedbu.
Sada ćemo izvesti napredniji primjer, identificirat ćemo koji dio našeg niza se podudara, što je vrlo korisno prilikom pretraživanja teksta, jer bismo time mogli istaknuti podudaranja onoga što korisnik unese.
Za to ćemo koristiti istu bazu našeg prethodnog programa s nekim izmjenama, pogledajmo kod, a zatim njegovo objašnjenje:
 uvoz java.util.regex. *; javna klasa Podudaranje {public static void main (String [] argv) {String pattern = "Q [u] \ d + \."; Uzorak r = Uzorak.kompilacija (uzorak); String text = "ID je: QW990. Kraj testa!"; Podudaranje m = r.matcher (tekst); if (m.find ()) {System.out.println (uzorak + "podudaranja \" " + m.group (0) +" \ "unutar \" " + tekst +" \ ""); } else {System.out.println ("Nema podudaranja"); }}} 

Još jednom vidimo kako započinjemo naš program, uključujući paket java.util.regex. *. Zatim koristimo isti obrazac iz prethodnog programa i sastavljamo ga metodom sastaviti, zanimljivost dolazi sada, mi smo koristili metodu podudaranje () za lociranje podudaranja, a zatim s metodom pronaći () i metoda grupa () možemo izvući točno ono što se podudara, na kraju napravimo odgovarajuće otiske zaslona. Pogledajmo kako sada izgleda naš program:

POVEĆAJTE

Tako vidimo kako smo uspjeli izdvojiti riječ koja stvarno odgovara obrascu koji smo uredili za usporedbu regularna fraza.
Jedna od najčešće korištenih aplikacija je na oblika, gdje možemo vršiti validaciju e -pošte, telefonske brojeve, kreditne kartice, lozinke, IP adrese, korisnička imena, poštanske brojeve pa čak i potvrditi da su sve naše oznake u našem HTML dokumentu ispravno zatvorene, što nam daje mogućnost postizanja veće sigurnosti u obradi teksta koji su unijeli korisnici.
Ali ne samo u provjerama valjanosti u poljima obrasca, što smo primijetili u zadnjem primjeru, to također možemo učiniti dugotrajno pretraživanje teksta Po određenom obrascu, pomoću njega možemo sustavno pretraživati ​​vrlo složene tekstualne dokumente i tako uštedjeti mnogo vremena, jednostavno pisanjem malog programa.
Ovim smo završili ovaj vodič, naučili smo kako možemo prijeći od različitih elemenata za izražavanje situacija unutar svojih obrazaca do učinkovite usporedbe teksta ili znakova koje želimo procijeniti, a sve to zahvaljujući regularni izrazi. Ove su evaluacije prilično brze zahvaljujući optimizacijama koje jezik radi u metodama koje nam nudi, pa su vrlo prikladne za izgradnju sučelja gdje moramo pretraživati ​​i provjeravati tekst koji korisnik unese.Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod
wave wave wave wave wave