Programiranje je olakšalo rad sa strukturiranim i nestrukturiranim tekstualnim podacima. Alati poput regularnih izraza i vanjskih biblioteka uvelike olakšavaju ove zadatke.
Možete koristiti većinu jezika, uključujući Python i JavaScript, za provjeru URL-ova pomoću regularnog izraza. Ovaj primjer regularnog izraza nije savršen, ali ga možete koristiti za provjeru URL-ova za jednostavne slučajeve upotrebe.
Regularni izraz za provjeru valjanosti URL-a
Regularni izraz za provjeru valjanosti URL-a predstavljen u ovom članku nije savršen. Može postojati više primjera važećih URL-ova koji mogu proći provjeru regularnog izraza. Ovo uključuje URL-ove koji uključuju IP adrese, ne-ASCII znakove i protokole kao što je FTP. Sljedeći regularni izraz potvrđuje samo najčešće URL-ove.
Regularni izraz smatrat će URL važećim ako zadovoljava sljedeće uvjete:
- Niz bi trebao započeti s bilo kojim http ili https slijedi ://.
- Kombinirana duljina pod-domene i domene mora biti između 2 i 256. Treba sadržavati samo alfanumeričke znakove i/ili posebne znakove.
- TLD (Top-Level Domain) trebao bi sadržavati samo abecedne znakove i trebao bi imati između dva i šest znakova.
- Kraj niza URL-a može sadržavati alfanumeričke znakove i/ili posebne znakove. I moglo bi se ponoviti nula ili više puta.
URL u JavaScriptu možete potvrditi koristeći sljedeći regularni izraz:
^(http (s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
Slično, možete koristiti sljedeći regularni izraz za provjeru valjanosti URL-a u Pythonu:
^((http|https)://)[-a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)$
Gdje:
- (http|https)://) osigurava da niz počinje s http ili https nakon čega slijedi ://.
- [-a-zA-Z0-9@:%._\\+~#?&//=] označava alfanumeričke znakove i/ili posebne znakove. Prva instanca ovog skupa predstavlja skup znakova koje treba dopustiti u dijelu pod-domene i domene. Dok druga instanca ovog skupa predstavlja skup znakova koje treba dopustiti u nizu upita ili dijelu poddirektorija.
- {2,256} predstavlja pokazatelj pojavljivanja od 2 do 256 (oba uključivo). To znači da kombinirana duljina poddomene i domene mora biti između dva i 256.
- \. predstavlja znak točke.
- [a-z]{2,6} znači bilo koja mala slova od a do z duljine između dva i šest. Ovo predstavlja skup znakova koje treba dopustiti u dijelu domene najviše razine.
- \b predstavlja granicu riječi, tj. početak ili kraj riječi.
- * je operator ponavljanja koji označava nula ili više kopija niza upita, parametara ili poddirektorija.
- ^ i $ označavaju početak odnosno kraj niza.
Ako vam je neugodan gornji izraz, provjerite vodič za početnike kroz regularne izraze prvi. Na regularne izraze potrebno je neko vrijeme da se naviknete. Istražujući neke primjere poput provjera valjanosti pojedinosti korisničkog računa korištenjem regularnih izraza trebao pomoći.
Gore navedeni regularni izraz zadovoljava sljedeće vrste URL-ova:
- https://www.something.com/
- http://www.something.com/
- https://www.something.edu.co.in
- http://www.url-with-path.com/path
- https://www.url-with-querystring.com/?url=has-querystring
- http://url-without-www-subdomain.com/
- https://mail.google.com
Korištenje regularnog izraza u programu
Kod korišten u ovom projektu dostupan je u a GitHub spremište i besplatan je za korištenje pod MIT licencom.
Ovo je Python pristup potvrđivanju URL-a:
uvoz ponovno
defpotvrdiURL(url):
regularni izraz = "^((http|https)://)[-a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)$"
r = re.compile (regex)ako (ponovno.traži(r, url)):
ispis("Valjano")
drugo:
ispis("Ne vrijedi")
url1 = "https://www.linkedin.com/"
potvrdiURL(url1)
url2 = "http://apple"
potvrdiURL(url2)
url3 = "iywegfuykegf"
potvrdiURL(url3)
url4 = "https://w"
potvrdiURL(url4)
Ovaj kod koristi Python re.compile() metoda za sastavljanje uzorka regularnog izraza. Ova metoda prihvaća uzorak regularnog izraza kao parametar niza i vraća objekt uzorka regularnog izraza. Ovaj objekt uzorka regularnog izraza dalje se koristi za traženje pojavljivanja uzorka regularnog izraza unutar ciljnog niza pomoću istraživanje() metoda.
Ako pronađe barem jedno podudaranje, istraživanje() metoda vraća prvo podudaranje. Imajte na umu da ako želite tražiti sva podudaranja s uzorkom iz ciljnog niza, morate koristiti re.findall() metoda.
Pokretanje gornjeg koda potvrdit će da je prvi URL valjan, ali ostali nisu.
Slično, možete potvrditi URL u JavaScriptu pomoću sljedećeg koda:
funkcijapotvrdiURL(url) {
ako(/^(http (s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/g.test (url)) {
console.log('Valjano');
} drugo {
console.log('Ne vrijedi');
}
}
potvrdiURL("https://www.linkedin.com/");
potvrdiURL("http://apple");
potvrdiURL("iywegfuykegf");
potvrdiURL("https://w");
Opet, pokretanje ovog koda potvrdit će da je prvi URL važeći, a da su ostali nevažeći. Koristi JavaScript odgovara() metoda za podudaranje ciljnog niza s uzorkom regularnog izraza.
Potvrdite važne podatke pomoću regularnih izraza
Možete koristiti regularne izraze za pretraživanje, podudaranje ili raščlanjivanje teksta. Također se koriste za obradu prirodnog jezika, slaganje uzoraka i leksičku analizu.
Možete koristiti ovaj moćni alat za provjeru valjanosti važnih vrsta podataka kao što su brojevi kreditnih kartica, detalji korisničkog računa, IP adrese i više.