Programmering har gjort det nemt at håndtere strukturerede og ustrukturerede tekstdata. Værktøjer som regulære udtryk og eksterne biblioteker gør disse opgaver meget nemmere.

Du kan bruge de fleste sprog, inklusive Python og JavaScript, til at validere URL'er ved hjælp af et regulært udtryk. Dette eksempel på regex er ikke perfekt, men du kan bruge det til at tjekke URL'er for simple brugstilfælde.

Et regulært udtryk for at validere en URL

Regex til at validere en URL præsenteret i denne artikel er ikke perfekt. Der kan være flere eksempler på gyldige URL'er, der kan mislykkes i denne regex-validering. Dette inkluderer URL'er, der involverer IP-adresser, ikke-ASCII-tegn og protokoller som FTP. Følgende regex validerer kun de mest almindelige URL'er.

Regex vil betragte en URL som gyldig, hvis den opfylder følgende betingelser:

  1. Strengen skal starte med enten http eller https efterfulgt af ://.
  2. Den kombinerede længde af underdomænet og domænet skal være mellem 2 og 256. Det bør kun indeholde alfanumeriske tegn og/eller specialtegn.
  3. instagram viewer
  4. TLD (Top-Level Domain) bør kun indeholde alfabetiske tegn, og det bør være mellem to og seks tegn langt.
  5. Slutningen af ​​URL-strengen kan indeholde alfanumeriske tegn og/eller specialtegn. Og det kunne gentages nul eller flere gange.

Du kan validere en URL i JavaScript ved at bruge følgende regulære udtryk:

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

På samme måde kan du bruge følgende regex til at validere en URL i Python:

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

Hvor:

  • (http|https)://) sørger for, at strengen starter med enten http eller https efterfulgt af ://.
  • [-a-zA-Z0-9@:%._\\+~#?&//=] angiver alfanumeriske tegn og/eller specialtegn. Den første forekomst af dette sæt repræsenterer det sæt af tegn, der skal tillades i underdomænet og domænedelen. Mens den anden forekomst af dette sæt repræsenterer det sæt af tegn, der skal tillades i forespørgselsstrengen eller underbiblioteksdelen.
  • {2,256} repræsenterer 2 til 256 (begge inklusive) gange forekomstindikator. Dette indikerer, at den kombinerede længde af underdomænet og domænet skal være mellem to og 256.
  • \. repræsenterer prikketegnet.
  • [a-z]{2,6} betyder alle små bogstaver fra a til z med en længde mellem to og seks. Dette repræsenterer det sæt af tegn, der skal tillades i topdomænedelen.
  • \b repræsenterer grænsen for et ord, dvs. begyndelsen af ​​et ord eller slutningen af ​​et.
  • * er en gentagelsesoperator, som angiver nul eller flere kopier af forespørgselsstrengen, parametrene eller undermapper.
  • ^ og $ angiv henholdsvis start og slutning af strengen.

Hvis du er utilpas med ovenstående udtryk, så tjek ud en begynderguide til regulære udtryk først. Regelmæssige udtryk tager lidt tid at vænne sig til. Udforsker nogle eksempler som validering af brugerkontooplysninger ved hjælp af regulære udtryk skulle hjælpe.

Ovenstående regex opfylder følgende typer URL'er:

  • 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

Brug af det regulære udtryk i et program

Koden brugt i dette projekt er tilgængelig i en GitHub-depot og er gratis for dig at bruge under MIT-licensen.

Dette er en Python-tilgang til at validere en URL:

importere vedr

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

hvis (vedr.Søg(r, url)):
Print("Gyldig")
andet:
Print("Ikke gyldig")

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

Denne kode bruger Python's re.compile() metode til at kompilere det regulære udtryksmønster. Denne metode accepterer regex-mønsteret som en strengparameter og returnerer et regex-mønsterobjekt. Dette regex-mønsterobjekt bruges yderligere til at lede efter forekomster af regex-mønsteret inde i målstrengen ved hjælp af forskning() metode.

Hvis den finder mindst én match, forskning() metode returnerer det første match. Bemærk, at hvis du vil søge efter alle matchene til mønsteret fra målstrengen, skal du bruge re.findall() metode.

At køre ovenstående kode vil bekræfte, at den første URL er gyldig, men resten af ​​dem er ikke.

På samme måde kan du validere en URL i JavaScript ved hjælp af følgende kode:

fungerevalider URL(url) {
hvis(/^(http (s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2.256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/g.test (url)) {
console.log('Gyldig');
} andet {
console.log('Ikke gyldig');
}
}

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

Igen vil kørsel af denne kode bekræfte, at den første URL er gyldig, og at resten af ​​dem er ugyldige. Den bruger JavaScript match() metode til at matche målstrengen mod et regulært udtryksmønster.

Valider vigtige data ved hjælp af regulære udtryk

Du kan bruge regulære udtryk til at søge, matche eller analysere tekst. De bruges også til naturlig sprogbehandling, mønstertilpasning og leksikalsk analyse.

Du kan bruge dette kraftfulde værktøj til at validere vigtige typer data som kreditkortnumre, brugerkontooplysninger, IP-adresser og mere.