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:
- A karakterláncnak bármelyikvel kell kezdődnie http vagy https követi ://.
- 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.
- A TLD (Top-Level Domain) csak alfabetikus karaktereket tartalmazhat, és 2 és 6 karakter közötti hosszúságú lehet.
- 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.