A programozás megkönnyítette a strukturált és strukturálatlan szöveges adatok kezelését. Az olyan eszközök, mint a reguláris kifejezések és a külső könyvtárak, jelentősen megkönnyítik ezeket a feladatokat.

A legtöbb nyelvet, köztük a Pythont és a JavaScriptet is használhatja az URL-ek reguláris kifejezéssel történő érvényesítésére. Ez a példa reguláris kifejezés nem tökéletes, de használhatja az URL-ek egyszerű használati eseteinek ellenőrzésére.

Reguláris kifejezés egy URL érvényesítésére

Az ebben a cikkben bemutatott URL ellenőrzésére szolgáló reguláris kifejezés nem tökéletes. Több példa is lehet olyan érvényes URL-ekre, amelyek meghiúsíthatják ezt a szabályos kifejezést. Ide tartoznak az IP-címeket, nem ASCII karaktereket és protokollokat, például FTP-t tartalmazó URL-ek. A következő reguláris kifejezés csak a leggyakoribb URL-eket érvényesíti.

A reguláris kifejezés érvényesnek tekinti az URL-t, ha az megfelel a következő feltételeknek:

  1. A karakterláncnak bármelyikvel kell kezdődnie http vagy https követi ://.
  2. Az aldomain és a domain együttes hosszának 2 és 256 között kell lennie. Csak alfanumerikus karaktereket és/vagy speciális karaktereket tartalmazhat.
  3. A TLD (Top-Level Domain) csak alfabetikus karaktereket tartalmazhat, és 2 és 6 karakter közötti hosszúságú lehet.
  4. Az URL-karakterlánc vége alfanumerikus karaktereket és/vagy speciális karaktereket tartalmazhat. És megismétlődhet nulla vagy többször is.

Az URL-t a következő reguláris kifejezéssel ellenőrizheti a JavaScriptben:

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

Hasonlóképpen a következő reguláris kifejezést használhatja egy URL érvényesítésére Pythonban:

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

Ahol:

  • (http|https)://) győződjön meg arról, hogy a karakterlánc http vagy https előtaggal kezdődik, amelyet :// követ.
  • [-a-zA-Z0-9@:%._\\+~#?&//=] alfanumerikus karaktereket és/vagy speciális karaktereket jelöl. A készlet első példánya az aldomain- és tartományrészben engedélyezhető karakterkészletet jelenti. Míg ennek a készletnek a második példánya a lekérdezési karakterláncban vagy alkönyvtárrészben megengedett karakterkészletet képviseli.
  • {2,256} 2-256 (mindkettőt beleértve) előfordulási mutatót jelent. Ez azt jelzi, hogy az aldomain és a domain együttes hosszának kettő és 256 között kell lennie.
  • \. pont karaktert képvisel.
  • [a-z]{2,6} A-tól z-ig bármilyen kisbetűt jelent, amelynek hosszúsága kettő és hat között van. Ez a legfelső szintű tartományrészben engedélyezhető karakterkészletet jelenti.
  • \b egy szó határát jelöli, azaz egy szó elejét vagy végét.
  • * egy ismétlési operátor, amely a lekérdezési karakterlánc, paraméterek vagy alkönyvtárak nulla vagy több példányát jelzi.
  • ^ és $ jelzi a karakterlánc elejét és végét.

Ha nem érzi a fenti kifejezést, nézze meg kezdőknek szóló útmutató a reguláris kifejezésekhez első. A reguláris kifejezések megszokásához idő kell. Néhány példa feltárása, mint pl a felhasználói fiók adatainak érvényesítése reguláris kifejezésekkel segítenie kell.

A fenti reguláris kifejezés a következő típusú URL-eknek felel meg:

  • 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

A reguláris kifejezés használata egy programban

A projektben használt kód elérhető a GitHub adattár és az MIT licence alapján ingyenesen használható.

Ez egy Python megközelítés az URL érvényesítésére:

import újra

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

ha (újra.keresés(r, url)):
nyomtatás("Érvényes")
más:
nyomtatás("Nem érvényes")

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

Ez a kód Python-t használ re.compile() metódus a reguláris kifejezés mintájának összeállításához. Ez a metódus elfogadja a regex mintát karakterlánc-paraméterként, és egy regex minta objektumot ad vissza. Ez a reguláris kifejezés mintaobjektum tovább használható a regex minta előfordulásának keresésére a célkarakterláncon belül a következővel: kutatás() módszer.

Ha legalább egy egyezést talál, a kutatás() metódus az első egyezést adja vissza. Vegye figyelembe, hogy ha meg akarja keresni az összes egyezést a mintára a célkarakterláncból, akkor használja a re.findall() módszer.

A fenti kód futtatása megerősíti, hogy az első URL érvényes, de a többi nem.

Hasonlóképpen érvényesíthet egy URL-t JavaScriptben a következő kóddal:

funkcióvalidateURL(url) {
ha(/^(http (s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/g.test (url)) {
console.log('Érvényes');
} más {
console.log('Nem érvényes');
}
}

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

A kód futtatása ismét megerősíti, hogy az első URL érvényes, a többi pedig érvénytelen. JavaScript-et használ mérkőzés() metódussal, hogy a célkarakterláncot reguláris kifejezésmintával párosítsa.

Érvényesítse a fontos adatokat reguláris kifejezésekkel

Használhat reguláris kifejezéseket a szöveg keresésére, egyeztetésére vagy elemzésére. Természetes nyelvi feldolgozásra, mintaillesztésre és lexikális elemzésre is használják.

Ezzel a hatékony eszközzel ellenőrizheti olyan fontos adattípusokat, mint a hitelkártyaszámok, felhasználói fiókok adatai, IP-címek és egyebek.