Programavimas leido lengvai tvarkyti struktūrinius ir nestruktūruotus tekstinius duomenis. Tokie įrankiai kaip reguliarios išraiškos ir išorinės bibliotekos palengvina šias užduotis.

Galite naudoti daugumą kalbų, įskaitant Python ir JavaScript, norėdami patvirtinti URL naudodami įprastą posakį. Šis reguliaraus reiškinio pavyzdys nėra tobulas, bet galite jį naudoti norėdami patikrinti URL, ar nėra paprastų naudojimo atvejų.

Reguliarusis reiškinys URL patvirtinimui

Šiame straipsnyje pateiktas reguliarusis URL patvirtinimas nėra tobulas. Gali būti keli galiojančių URL, kuriems gali nepavykti šio reguliaraus reiškinio patvirtinimo, pavyzdžių. Tai apima URL su IP adresais, ne ASCII simboliais ir protokolais, pvz., FTP. Šis reguliarusis reiškinys patvirtina tik dažniausiai naudojamus URL.

Reguliarioji išraiška laikys URL galiojančiu, jei jis atitinka šias sąlygas:

  1. Styga turėtų prasidėti bet kuria http arba https sekė ://.
  2. Bendras subdomeno ir domeno ilgis turi būti nuo 2 iki 256. Jame turėtų būti tik raidiniai ir skaitiniai simboliai ir (arba) specialieji simboliai.
  3. instagram viewer
  4. ALD (aukščiausio lygio domenas) turi sudaryti tik abėcėlės simbolius ir jis turi būti nuo dviejų iki šešių simbolių ilgio.
  5. URL eilutės pabaigoje gali būti raidinių ir skaitmeninių simbolių ir (arba) specialiųjų simbolių. Ir tai gali pasikartoti nulį ar daugiau kartų.

Galite patvirtinti URL „JavaScript“ naudodami šį reguliarųjį posakį:

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

Panašiai galite naudoti šį reguliarųjį reiškinį norėdami patvirtinti URL Python:

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

Kur:

  • (http|https)://) užtikrina, kad eilutė prasidėtų http arba https, po kurios eina ://.
  • [-a-zA-Z0-9@:%._\\+~#?&//=] žymi raidinius ir skaitinius simbolius ir (arba) specialiuosius simbolius. Pirmasis šio rinkinio egzempliorius reiškia simbolių rinkinį, leidžiamą subdomeno ir domeno dalyje. Nors antrasis šio rinkinio egzempliorius reiškia simbolių rinkinį, leidžiamą užklausos eilutėje arba pakatalogio dalyje.
  • {2,256} reiškia nuo 2 iki 256 (abu imtinai) pasikartojimo rodiklį. Tai rodo, kad bendras padomenio ir domeno ilgis turi būti nuo dviejų iki 256.
  • \. reiškia taško simbolį.
  • [a-z] {2,6} reiškia bet kokias mažąsias raides nuo a iki z, kurių ilgis yra nuo dviejų iki šešių. Tai reiškia simbolių rinkinį, kurį galima leisti aukščiausio lygio domeno dalyje.
  • \b reiškia žodžio ribą, ty žodžio pradžią arba pabaigą.
  • * yra pasikartojimo operatorius, nurodantis nulį ar daugiau užklausos eilutės, parametrų arba pakatalogių kopijų.
  • ^ ir $ atitinkamai nurodykite eilutės pradžią ir pabaigą.

Jei jums nepatinka aukščiau pateikta išraiška, patikrinkite pradedančiųjų reguliarių posakių vadovas Pirmas. Prie reguliarių posakių priprasti reikia šiek tiek laiko. Išnagrinėjus kai kuriuos pavyzdžius, pvz vartotojo abonemento duomenų patvirtinimas naudojant įprastus posakius turėtų padėti.

Aukščiau pateikta reguliarioji išraiška atitinka šių tipų URL:

  • 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

Reguliariosios išraiškos naudojimas programoje

Šiame projekte naudojamas kodas yra a GitHub saugykla ir jūs galite nemokamai naudotis pagal MIT licenciją.

Tai yra Python metodas URL patvirtinimui:

importuoti re

defpatvirtintiURL(url):
reguliarioji išraiška = "^((http|https)://)[-a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)$"
r = iš naujo.kompiliuoti (regex)

jeigu (re.Paieška(r, url)):
spausdinti ("Galioja")
Kitas:
spausdinti ("Negaliojantis")

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

Šis kodas naudoja Python's re.compile() reguliariosios išraiškos modelio sudarymo metodas. Šis metodas priima reguliariojo reiškinio šabloną kaip eilutės parametrą ir grąžina reguliaraus reiškinio šablono objektą. Šis reguliaraus reiškinio šablono objektas toliau naudojamas ieškant reguliariojo reiškinio šablono atvejų tikslinėje eilutėje naudojant re.search() metodas.

Jei ji randa bent vieną atitikmenį, re.search() metodas grąžina pirmą atitiktį. Atminkite, kad jei norite ieškoti visų šablono atitikčių iš tikslinės eilutės, turite naudoti re.findall() metodas.

Vykdydami anksčiau pateiktą kodą patvirtinsite, kad pirmasis URL yra galiojantis, o kiti ne.

Panašiai galite patvirtinti URL „JavaScript“ naudodami šį kodą:

funkcijapatvirtintiURL(url) {
jeigu(/^(http (s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2 256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/g.test (url)) {
console.log('Galioja');
} Kitas {
console.log('Negaliojantis');
}
}

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

Vėlgi, paleidus šį kodą, bus patvirtinta, kad pirmasis URL yra galiojantis, o likusieji negalioja. Jis naudoja JavaScript atitikimas () metodas suderinti tikslinę eilutę su reguliariosios išraiškos šablonu.

Patvirtinkite svarbius duomenis naudodami reguliariuosius reiškinius

Galite naudoti įprastus posakius norėdami ieškoti, suderinti arba analizuoti tekstą. Jie taip pat naudojami natūralios kalbos apdorojimui, modelių derinimui ir leksinei analizei.

Galite naudoti šį galingą įrankį, kad patvirtintumėte svarbius duomenų tipus, pvz., kredito kortelių numerius, vartotojo abonemento duomenis, IP adresus ir kt.