Programování usnadnilo práci se strukturovanými a nestrukturovanými textovými daty. Nástroje jako regulární výrazy a externí knihovny tyto úkoly značně usnadňují.

K ověření URL pomocí regulárního výrazu můžete použít většinu jazyků, včetně Pythonu a JavaScriptu. Tento příklad regulárního výrazu není dokonalý, ale můžete jej použít ke kontrole URL pro jednoduché případy použití.

Regulární výraz pro ověření adresy URL

Regulární výraz pro ověření adresy URL uvedený v tomto článku není dokonalý. Může existovat několik příkladů platných adres URL, které mohou selhat při tomto ověření regulárního výrazu. To zahrnuje adresy URL obsahující adresy IP, znaky jiné než ASCII a protokoly, jako je FTP. Následující regulární výraz ověřuje pouze nejběžnější adresy URL.

Regulární výraz bude považovat adresu URL za platnou, pokud splňuje následující podmínky:

  1. Řetězec by měl začínat buď http nebo https následován ://.
  2. Kombinovaná délka subdomény a domény musí být mezi 2 a 256. Měl by obsahovat pouze alfanumerické znaky a/nebo speciální znaky.
  3. instagram viewer
  4. TLD (Top-Level Domain) by měla obsahovat pouze abecední znaky a měla by být dlouhá od dvou do šesti znaků.
  5. Konec řetězce URL může obsahovat alfanumerické znaky a/nebo speciální znaky. A mohlo by se to opakovat nula nebo vícekrát.

Adresu URL v JavaScriptu můžete ověřit pomocí následujícího regulárního výrazu:

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

Podobně můžete k ověření adresy URL v Pythonu použít následující regulární výraz:

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

Kde:

  • (http|https)://) zajišťuje, že řetězec začíná http nebo https následovaným ://.
  • [-a-zA-Z0-9@:%._\\+~#?&//=] označuje alfanumerické znaky a/nebo speciální znaky. První instance této sady představuje sadu znaků, které lze povolit v části subdomény a domény. Zatímco druhá instance této sady představuje sadu znaků, které lze povolit v části dotazu nebo podadresáře.
  • {2,256} představuje 2 až 256 (oba včetně) násobek ukazatele výskytu. To znamená, že kombinovaná délka subdomény a domény musí být mezi 2 a 256.
  • \. představuje znak tečky.
  • [a-z]{2,6} znamená jakákoli malá písmena od a do z o délce mezi dvěma a šesti. To představuje sadu znaků, které lze povolit v části domény nejvyšší úrovně.
  • \b představuje hranici slova, tj. začátek slova nebo konec jednoho.
  • * je operátor opakování, který označuje nula nebo více kopií řetězce dotazu, parametrů nebo podadresářů.
  • ^ a $ označte začátek a konec řetězce.

Pokud je vám výše uvedený výraz nepříjemný, podívejte se průvodce regulárními výrazy pro začátečníky První. Na regulární výrazy nějakou dobu trvá, než si na ně zvyknete. Prozkoumání některých příkladů jako ověření podrobností uživatelského účtu pomocí regulárních výrazů by měl pomoci.

Výše uvedený regulární výraz vyhovuje následujícím typům adres 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žití regulárního výrazu v programu

Kód použitý v tomto projektu je k dispozici v a úložiště GitHub a můžete jej používat zdarma pod licencí MIT.

Toto je přístup Pythonu k ověření adresy URL:

import re

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

-li (re.Vyhledávání(r, url)):
tisk("Platný")
jiný:
tisk("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žívá Python re.compile() metoda pro kompilaci vzoru regulárního výrazu. Tato metoda přijímá vzor regulárního výrazu jako parametr řetězce a vrací objekt vzoru regulárního výrazu. Tento objekt vzoru regulárních výrazů se dále používá k hledání výskytů vzoru regulárních výrazů uvnitř cílového řetězce pomocí výzkum() metoda.

Pokud najde alespoň jednu shodu, výzkum() metoda vrací první shodu. Všimněte si, že pokud chcete vyhledat všechny shody se vzorem z cílového řetězce, musíte použít re.findall() metoda.

Spuštěním výše uvedeného kódu potvrdíte, že první URL je platná, ale ostatní ne.

Podobně můžete ověřit adresu URL v JavaScriptu pomocí následujícího kódu:

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

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

Opět platí, že spuštění tohoto kódu potvrdí, že první URL je platná a ostatní jsou neplatné. Využívá JavaScript zápas() metoda pro porovnání cílového řetězce se vzorem regulárního výrazu.

Ověřujte důležitá data pomocí regulárních výrazů

Pomocí regulárních výrazů můžete vyhledávat, porovnávat nebo analyzovat text. Používají se také pro zpracování přirozeného jazyka, porovnávání vzorů a lexikální analýzu.

Tento výkonný nástroj můžete použít k ověření důležitých typů dat, jako jsou čísla kreditních karet, podrobnosti o uživatelských účtech, IP adresy a další.