Programovanie uľahčilo prácu so štruktúrovanými a neštruktúrovanými textovými dátami. Nástroje ako regulárne výrazy a externé knižnice tieto úlohy značne uľahčujú.

Na overenie adries URL pomocou regulárneho výrazu môžete použiť väčšinu jazykov vrátane Pythonu a JavaScriptu. Tento príklad regulárneho výrazu nie je dokonalý, ale môžete ho použiť na kontrolu adries URL pre jednoduché prípady použitia.

Regulárny výraz na overenie adresy URL

Regulárny výraz na overenie adresy URL uvedený v tomto článku nie je dokonalý. Môže existovať viacero príkladov platných adries URL, ktoré môžu zlyhať pri overení regulárneho výrazu. Patria sem adresy URL obsahujúce adresy IP, znaky iné ako ASCII a protokoly ako FTP. Nasledujúci regulárny výraz overuje iba najbežnejšie adresy URL.

Regulárny výraz bude považovať adresu URL za platnú, ak spĺňa nasledujúce podmienky:

  1. Reťazec by mal začínať buď http alebo https nasledovaný ://.
  2. Kombinovaná dĺžka subdomény a domény musí byť medzi 2 a 256. Mal by obsahovať iba alfanumerické znaky a/alebo špeciálne znaky.
  3. instagram viewer
  4. TLD (Top-Level Domain) by mala obsahovať iba abecedné znaky a mala by mať dĺžku od dvoch do šiestich znakov.
  5. Koniec reťazca adresy URL môže obsahovať alfanumerické znaky a/alebo špeciálne znaky. A mohlo sa to opakovať nula alebo viackrát.

Webovú adresu v JavaScripte môžete overiť pomocou nasledujúceho regulárneho výrazu:

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

Podobne môžete použiť nasledujúci regulárny výraz na overenie adresy URL v Pythone:

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

Kde:

  • (http|https)://) zaisťuje, že reťazec začína buď http alebo https, za ktorým nasleduje ://.
  • [-a-zA-Z0-9@:%._\\+~#?&//=] označuje alfanumerické znaky a/alebo špeciálne znaky. Prvá inštancia tejto množiny predstavuje množinu znakov, ktoré je možné povoliť v časti subdomény a domény. Zatiaľ čo druhá inštancia tejto množiny predstavuje množinu znakov, ktoré je možné povoliť v reťazci dotazu alebo v časti podadresára.
  • {2,256} predstavuje 2 až 256 (oba vrátane) násobok ukazovateľa výskytu. To znamená, že kombinovaná dĺžka subdomény a domény musí byť medzi 2 a 256.
  • \. predstavuje znak bodky.
  • [a-z]{2,6}{101} znamená akékoľvek malé písmená od a do z s dĺžkou od dvoch do šiestich. Toto predstavuje množinu znakov, ktoré je možné povoliť v časti domény najvyššej úrovne.
  • \b predstavuje hranicu slova, t. j. začiatok slova alebo koniec slova.
  • * je operátor opakovania, ktorý označuje nula alebo viac kópií reťazca dotazu, parametrov alebo podadresárov.
  • ^ a $ označte začiatok a koniec reťazca.

Ak je vám vyššie uvedený výraz nepríjemný, skontrolujte ho sprievodca regulárnymi výrazmi pre začiatočníkov najprv. Na regulárne výrazy si treba nejaký čas zvyknúť. Preskúmanie niektorých príkladov, ako napr overenie podrobností o používateľskom účte pomocou regulárnych výrazov by mal pomôcť.

Vyššie uvedený regulárny výraz vyhovuje nasledujúcim typom adries 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

Používanie regulárneho výrazu v programe

Kód použitý v tomto projekte je dostupný v a úložisko GitHub a môžete ho bezplatne používať na základe licencie MIT.

Toto je prístup Pythonu na overenie adresy URL:

importovať re

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

ak (re.Vyhľadávanie(r, url)):
vytlačiť ("Platné")
inak:
vytlačiť ("Neplatný")

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

Tento kód používa Python re.compile() metóda na zostavenie vzoru regulárneho výrazu. Táto metóda akceptuje vzor regulárneho výrazu ako parameter reťazca a vráti objekt vzoru regulárneho výrazu. Tento objekt vzoru regulárneho výrazu sa ďalej používa na hľadanie výskytov vzoru regulárneho výrazu v cieľovom reťazci pomocou re.search() metóda.

Ak nájde aspoň jednu zhodu, re.search() metóda vráti prvú zhodu. Všimnite si, že ak chcete vyhľadať všetky zhody so vzorom z cieľového reťazca, musíte použiť re.findall() metóda.

Spustenie vyššie uvedeného kódu potvrdí, že prvá adresa URL je platná, ale ostatné nie.

Podobne môžete overiť adresu URL v jazyku JavaScript pomocou nasledujúceho kódu:

funkciuvalidateURL(url) {
ak(/^(http (s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/g.test (url)) {
console.log('Platné');
} inak {
console.log('Neplatný');
}
}

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

Spustenie tohto kódu opäť potvrdí, že prvá adresa URL je platná a ostatné sú neplatné. Používa JavaScript zápas() metóda na porovnanie cieľového reťazca so vzorom regulárneho výrazu.

Overte dôležité údaje pomocou regulárnych výrazov

Regulárne výrazy môžete použiť na vyhľadávanie, porovnávanie alebo analýzu textu. Používajú sa aj na spracovanie prirodzeného jazyka, porovnávanie vzorov a lexikálnu analýzu.

Tento výkonný nástroj môžete použiť na overenie dôležitých typov údajov, ako sú čísla kreditných kariet, podrobnosti o používateľských účtoch, adresy IP a ďalšie.