Programowanie ułatwiło radzenie sobie ze strukturalnymi i nieustrukturyzowanymi danymi tekstowymi. Narzędzia takie jak wyrażenia regularne i biblioteki zewnętrzne znacznie ułatwiają te zadania.

Możesz używać większości języków, w tym Pythona i JavaScript, do sprawdzania poprawności adresów URL za pomocą wyrażenia regularnego. To przykładowe wyrażenie regularne nie jest idealne, ale możesz go użyć do sprawdzenia adresów URL pod kątem prostych przypadków użycia.

Wyrażenie regularne do sprawdzania poprawności adresu URL

Wyrażenie regularne służące do sprawdzania poprawności adresu URL przedstawione w tym artykule nie jest doskonałe. Może istnieć wiele przykładów prawidłowych adresów URL, które mogą nie przejść weryfikacji wyrażenia regularnego. Obejmuje to adresy URL zawierające adresy IP, znaki spoza zestawu ASCII i protokoły, takie jak FTP. Poniższe wyrażenie regularne weryfikuje tylko najczęstsze adresy URL.

Wyrażenie regularne uzna adres URL za prawidłowy, jeśli spełnia następujące warunki:

instagram viewer
  1. Ciąg powinien zaczynać się od dowolnego z nich http Lub https śledzony przez ://.
  2. Łączna długość subdomeny i domeny musi wynosić od 2 do 256. Powinien zawierać wyłącznie znaki alfanumeryczne i/lub znaki specjalne.
  3. TLD (domena najwyższego poziomu) powinna zawierać tylko znaki alfabetu i powinna mieć od dwóch do sześciu znaków.
  4. Koniec ciągu adresu URL może zawierać znaki alfanumeryczne i/lub znaki specjalne. I może powtórzyć się zero lub więcej razy.

Możesz zweryfikować adres URL w JavaScript, używając następującego wyrażenia regularnego:

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

Podobnie możesz użyć następującego wyrażenia regularnego, aby sprawdzić poprawność adresu URL w Pythonie:

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

Gdzie:

  • (http|https)://) upewnia się, że ciąg zaczyna się od http lub https, po których następuje ://.
  • [-a-zA-Z0-9@:%._\\+~#?&//=] oznacza znaki alfanumeryczne i/lub znaki specjalne. Pierwsza instancja tego zestawu reprezentuje zestaw znaków dozwolonych w części subdomeny i domeny. Podczas gdy druga instancja tego zestawu reprezentuje zestaw znaków, które mają być dozwolone w ciągu zapytania lub części podkatalogu.
  • {2,256} reprezentuje wskaźnik występowania od 2 do 256 (włącznie) razy. Oznacza to, że łączna długość subdomeny i domeny musi wynosić od dwóch do 256.
  • \. reprezentuje znak kropki.
  • [a-z]{2,6} oznacza dowolne małe litery od a do z o długości od dwóch do sześciu. Reprezentuje zestaw znaków dozwolonych w części domeny najwyższego poziomu.
  • \B reprezentuje granicę słowa, tj. początek słowa lub koniec słowa.
  • * jest operatorem powtórzeń, który wskazuje zero lub więcej kopii ciągu zapytania, parametrów lub podkatalogów.
  • ^ I $ wskaż odpowiednio początek i koniec łańcucha.

Jeśli nie podoba ci się powyższe wyrażenie, sprawdź przewodnik po wyrażeniach regularnych dla początkujących Pierwszy. Przyzwyczajenie się do wyrażeń regularnych zajmuje trochę czasu. Odkrywanie niektórych przykładów, takich jak sprawdzanie poprawności danych konta użytkownika za pomocą wyrażeń regularnych powinno pomóc.

Powyższe wyrażenie regularne spełnia następujące typy adresów 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

Używanie wyrażeń regularnych w programie

Kod użyty w tym projekcie jest dostępny w formacie Repozytorium GitHub i jest darmowy do użytku na licencji MIT.

To jest podejście Pythona do sprawdzania poprawności adresu URL:

import Odnośnie

poksprawdź adres URL(url):
wyrażenie regularne = "^((http|https)://)[-a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)$"
r = re.compile (regex)

Jeśli (Odnośnie.szukaj(R, adres URL)):
wydrukować("Ważny")
w przeciwnym razie:
wydrukować("Nieważny")

adres URL1 = "https://www.linkedin.com/"
sprawdź adres URL (url1)
adres URL2 = "http://apple"
sprawdź adres URL (url2)
adres URL3 = "iywegfuykegf"
sprawdź adres URL (url3)
adres URL4 = "https://w"
sprawdź adres URL (url4)

Ten kod używa języka Python re.kompiluj() metoda kompilacji wzorca wyrażenia regularnego. Ta metoda akceptuje wzorzec wyrażenia regularnego jako parametr ciągu i zwraca obiekt wzorca wyrażenia regularnego. Ten obiekt wzorca wyrażenia regularnego jest dalej używany do wyszukiwania wystąpień wzorca wyrażenia regularnego wewnątrz ciągu docelowego za pomocą badania() metoda.

Jeśli znajdzie co najmniej jedno dopasowanie, plik badania() Metoda zwraca pierwsze dopasowanie. Zauważ, że jeśli chcesz wyszukać wszystkie dopasowania do wzorca z ciągu docelowego, musisz użyć re.findall() metoda.

Uruchomienie powyższego kodu potwierdzi, że pierwszy adres URL jest prawidłowy, ale pozostałe nie.

Podobnie możesz zweryfikować adres URL w JavaScript, używając następującego kodu:

funkcjonowaćsprawdź adres URL(adres URL) {
Jeśli(/^(http (s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/g.test (url)) {
log konsoli ('Ważny');
} w przeciwnym razie {
log konsoli ('Nieważny');
}
}

sprawdź adres URL("https://www.linkedin.com/");
sprawdź adres URL("http://apple");
sprawdź adres URL("iywegfuykegf");
sprawdź adres URL("https://w");

Ponownie uruchomienie tego kodu potwierdzi, że pierwszy adres URL jest prawidłowy, a pozostałe są nieprawidłowe. Wykorzystuje JavaScript mecz() metody dopasowywania ciągu docelowego do wzorca wyrażenia regularnego.

Sprawdź poprawność ważnych danych za pomocą wyrażeń regularnych

Możesz używać wyrażeń regularnych do wyszukiwania, dopasowywania lub analizowania tekstu. Są również używane do przetwarzania języka naturalnego, dopasowywania wzorców i analizy leksykalnej.

Możesz użyć tego potężnego narzędzia do weryfikacji ważnych typów danych, takich jak numery kart kredytowych, dane konta użytkownika, adresy IP i inne.