Programiranje je olajšalo delo s strukturiranimi in nestrukturiranimi besedilnimi podatki. Orodja, kot so regularni izrazi in zunanje knjižnice, zelo olajšajo ta opravila.

Za preverjanje URL-jev z uporabo regularnega izraza lahko uporabite večino jezikov, vključno s Pythonom in JavaScriptom. Ta primer regularnega izraza ni popoln, vendar ga lahko uporabite za preverjanje URL-jev za preproste primere uporabe.

Regularni izraz za preverjanje URL-ja

Regularni izraz za preverjanje URL-ja, predstavljen v tem članku, ni popoln. Morda obstaja več primerov veljavnih URL-jev, ki morda ne bodo prestali tega preverjanja regularnega izraza. To vključuje URL-je, ki vključujejo naslove IP, znake, ki niso ASCII, in protokole, kot je FTP. Naslednji regularni izraz potrdi samo najpogostejše URL-je.

Regularni izraz bo URL štel za veljavnega, če izpolnjuje naslednje pogoje:

  1. Niz se mora začeti z bodisi http oz https sledi ://.
  2. Skupna dolžina poddomene in domene mora biti med 2 in 256. Vsebovati mora samo alfanumerične znake in/ali posebne znake.
  3. instagram viewer
  4. TLD (Top-Level Domain) mora vsebovati samo črke in mora biti dolg med dvema in šestimi znaki.
  5. Konec niza URL-ja lahko vsebuje alfanumerične znake in/ali posebne znake. In lahko se ponovi nič ali večkrat.

URL v JavaScriptu lahko potrdite z naslednjim regularnim izrazom:

^(http (s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$

Podobno lahko uporabite naslednji regularni izraz za preverjanje URL-ja v Pythonu:

^((http|https)://)[-a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)$

Kje:

  • (http|https)://) poskrbi, da se niz začne s http ali https, ki mu sledi ://.
  • [-a-zA-Z0-9@:%._\\+~#?&//=] označuje alfanumerične znake in/ali posebne znake. Prvi primerek tega nabora predstavlja nabor znakov, ki jih je treba dovoliti v delu poddomene in domene. Medtem ko drugi primerek tega nabora predstavlja nabor znakov, ki jih je treba dovoliti v nizu poizvedbe ali delu podimenika.
  • {2,256} predstavlja od 2 do 256 (vključno oba) indikatorja pojavnosti. To pomeni, da mora biti skupna dolžina poddomene in domene med dva in 256.
  • \. predstavlja znak pike.
  • [a-z]{2,6} pomeni vse male črke od a do z z dolžino med dva in šest. To predstavlja nabor znakov, ki so dovoljeni v delu domene najvišje ravni.
  • \b predstavlja mejo besede, tj. začetek ali konec besede.
  • * je operator ponavljanja, ki označuje nič ali več kopij poizvedbenega niza, parametrov ali podimenikov.
  • ^ in $ označite začetek in konec niza.

Če vam je zgornji izraz neprijeten, preverite začetniški vodnik po regularnih izrazih prvi. Potrebujete nekaj časa, da se navadite na regularne izraze. Raziskovanje nekaj primerov, kot je preverjanje podrobnosti uporabniškega računa z uporabo regularnih izrazov bi moralo pomagati.

Zgornji regularni izraz ustreza naslednjim vrstam URL-jev:

  • 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

Uporaba regularnega izraza v programu

Koda, uporabljena v tem projektu, je na voljo v a Repozitorij GitHub in je brezplačen za uporabo pod licenco MIT.

To je pristop Pythona k preverjanju URL-ja:

uvoz re

defvalidateURL(url):
regex = "^((http|https)://)[-a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)$"
r = re.compile (regex)

če (re.Iskanje(r, url)):
natisni("Veljavno")
drugače:
natisni("Ni veljaven")

url1 = "https://www.linkedin.com/"
potrdiURL(url1)
url2 = "http://apple"
potrdiURL(url2)
url3 = "iywegfuykegf"
potrdiURL(url3)
url4 = "https://w"
potrdiURL(url4)

Ta koda uporablja kodo Python re.compile() metoda za prevajanje vzorca regularnega izraza. Ta metoda sprejme vzorec regularnega izraza kot parameter niza in vrne objekt vzorca regularnega izraza. Ta objekt vzorca regularnega izraza se nadalje uporablja za iskanje pojavitev vzorca regularnega izraza znotraj ciljnega niza z uporabo re.search() metoda.

Če najde vsaj eno ujemanje, re.search() metoda vrne prvo ujemanje. Upoštevajte, da če želite poiskati vsa ujemanja z vzorcem iz ciljnega niza, morate uporabiti re.findall() metoda.

Zagon zgornje kode bo potrdil, da je prvi URL veljaven, preostali pa ne.

Podobno lahko preverite URL v JavaScriptu z naslednjo kodo:

funkcijovalidateURL(url) {
če(/^(http (s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/g.test (url)) {
console.log('Veljavno');
} drugače {
console.log('Ni veljaven');
}
}

potrdiURL("https://www.linkedin.com/");
potrdiURL("http://apple");
potrdiURL("iywegfuykegf");
potrdiURL("https://w");

Spet zagon te kode bo potrdil, da je prvi URL veljaven, ostali pa neveljavni. Uporablja JavaScript ujemanje() metoda za ujemanje ciljnega niza z vzorcem regularnega izraza.

Preverjanje pomembnih podatkov z uporabo regularnih izrazov

Za iskanje, ujemanje ali razčlenjevanje besedila lahko uporabite regularne izraze. Uporabljajo se tudi za obdelavo naravnega jezika, ujemanje vzorcev in leksikalno analizo.

To zmogljivo orodje lahko uporabite za preverjanje pomembnih vrst podatkov, kot so številke kreditnih kartic, podrobnosti uporabniškega računa, naslovi IP itd.