Programarea a făcut ușoară gestionarea datelor textuale structurate și nestructurate. Instrumente precum expresiile regulate și bibliotecile externe fac aceste sarcini mult mai ușoare.
Puteți utiliza majoritatea limbilor, inclusiv Python și JavaScript, pentru a valida adresele URL folosind o expresie regulată. Acest exemplu de regex nu este perfect, dar îl puteți folosi pentru a verifica adrese URL pentru cazuri simple de utilizare.
O expresie regulată pentru a valida o adresă URL
Regex pentru a valida o adresă URL prezentată în acest articol nu este perfectă. Pot exista mai multe exemple de adrese URL valide care ar putea eșua validarea regex. Acestea includ adrese URL care implică adrese IP, caractere non-ASCII și protocoale precum FTP. Următorul regex validează numai cele mai comune adrese URL.
Regex va considera o adresă URL validă dacă îndeplinește următoarele condiții:
- Șirul ar trebui să înceapă cu oricare http sau https urmată de ://.
- Lungimea combinată a subdomeniului și a domeniului trebuie să fie între 2 și 256. Ar trebui să conțină numai caractere alfanumerice și/sau caractere speciale.
- TLD-ul (Top-Level Domain) trebuie să conțină numai caractere alfabetice și ar trebui să aibă între două și șase caractere.
- Sfârșitul șirului URL poate conține caractere alfanumerice și/sau caractere speciale. Și se poate repeta de zero sau de mai multe ori.
Puteți valida o adresă URL în JavaScript folosind următoarea expresie regulată:
^(http (s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2.256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
În mod similar, puteți utiliza următoarea expresie regex pentru a valida o adresă URL în Python:
^((http|https)://)[-a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)$
Unde:
- (http|https)://) se asigură că șirul începe cu http sau https urmat de ://.
- [-a-zA-Z0-9@:%._\\+~#?&//=] indică caractere alfanumerice și/sau caractere speciale. Prima instanță a acestui set reprezintă setul de caractere de permis în subdomeniu și partea de domeniu. În timp ce a doua instanță a acestui set reprezintă setul de caractere pentru a permite în șirul de interogare sau partea subdirectorului.
- {2,256} reprezintă de la 2 la 256 (ambele inclusiv) ori indicatorul de apariție. Aceasta indică faptul că lungimea combinată a subdomeniului și a domeniului trebuie să fie între doi și 256.
- \. reprezintă caracterul punct.
- [a-z]{2,6} înseamnă orice litere mici de la a la z cu o lungime între două și șase. Acesta reprezintă setul de caractere care trebuie permis în partea de domeniu de nivel superior.
- \b reprezintă limita unui cuvânt, adică începutul unui cuvânt sau sfârșitul unuia.
- * este un operator de repetiție care indică zero sau mai multe copii ale șirului de interogare, parametrilor sau subdirectoarelor.
- ^ și $ indica începutul și respectiv sfârșitul șirului.
Dacă nu sunteți confortabil cu expresia de mai sus, verificați un ghid pentru începători pentru expresiile regulate primul. Expresiile regulate necesită ceva timp pentru a se obișnui. Explorând câteva exemple precum validarea detaliilor contului utilizatorului folosind expresii regulate ar trebui să ajute.
Expresia regex de mai sus satisface următoarele tipuri de adrese 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
Utilizarea expresiei regulate într-un program
Codul folosit în acest proiect este disponibil în a Depozitul GitHub și este gratuit pentru utilizare sub licența MIT.
Aceasta este o abordare Python pentru validarea unei adrese URL:
import re
defvalidateURL(url):
regex = "^((http|https)://)[-a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)$"
r = re.compilare (regex)dacă (re.căutare(r, url)):
imprimare("Valabil")
altfel:
imprimare("Invalid")
url1 = "https://www.linkedin.com/"
validateURL(url1)
url2 = "http://apple"
validateURL(url2)
url3 = "iywegfuykegf"
validateURL(url3)
url4 = "https://w"
validateURL(url4)
Acest cod folosește codul Python re.compile() metoda de compilare a modelului expresiei regulate. Această metodă acceptă modelul regex ca parametru șir și returnează un obiect model regex. Acest obiect model regex este folosit în continuare pentru a căuta aparițiile modelului regex în interiorul șirului țintă folosind cercetare() metodă.
Dacă găsește cel puțin o potrivire, cercetare() metoda returnează prima potrivire. Rețineți că, dacă doriți să căutați toate potrivirile cu modelul din șirul țintă, trebuie să utilizați re.findall() metodă.
Rularea codului de mai sus va confirma că prima adresă URL este validă, dar restul nu sunt.
În mod similar, puteți valida o adresă URL în JavaScript folosind următorul cod:
funcţievalidateURL(url) {
dacă(/^(http (s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2.256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/g.test (url)) {
console.log('Valabil');
} altfel {
console.log('Invalid');
}
}
validateURL("https://www.linkedin.com/");
validateURL("http://apple");
validateURL("iywegfuykegf");
validateURL("https://w");
Din nou, rularea acestui cod va confirma că prima adresă URL este validă, iar celelalte sunt invalide. Folosește JavaScript Meci() metodă de a potrivi șirul țintă cu un model de expresie regulată.
Validați datele importante folosind expresii regulate
Puteți folosi expresii regulate pentru a căuta, potrivi sau analiza text. Ele sunt, de asemenea, utilizate pentru procesarea limbajului natural, potrivirea modelelor și analiza lexicală.
Puteți folosi acest instrument puternic pentru a valida tipuri importante de date, cum ar fi numerele cardurilor de credit, detaliile contului de utilizator, adresele IP și multe altele.