Redovito izražavanje: što to znači

click fraud protection

Što je redoviti izraz?

Regex, ili regularni izrazi, su uzorci koji odgovaraju oznakama koje programeri koristite za traženje određenih obrazaca u tekstu. Regularni izrazi mogu tražiti gotovo sve, ovisno o tome kako ih strukturirate; sve ih koriste programeri jer su od neprocjenjive važnosti za pomaganje računalima da brzo sortiraju podatke i filtriraju gluposti koje bi inače mogle uzrokovati pogreške.

Regularni izrazi obično izgledaju zastrašujuće, posebno za one koji nisu programeri. Pogledajte samo ovo:

[a-zA-Z0-9 _. + -] + @ [a-zA-Z0-9 _-] + \. [a-zA-Z0-9 _.-] +

Realno, zapravo nije tako loše; taj odgovara adresama e-pošte. Kao što ćete vidjeti, izrazi se mogu raščlaniti na pojedinačne znakove, a svi oni programu govore što treba tražiti.

Regularni izrazi su gotovo univerzalni. Isti general sintaksa primjenjuje se na sve jezike uz samo male varijacije tu i tamo. Ovaj vodič sadrži primjere iz Pythona i JavaScript-a, kao i obični stari regex. Ako radite s drugim jezikom, ne brinite. Gotovo sve će se odnositi i na vaš odabrani jezik.

instagram viewer

Osnove Regexa

Tehnički, nema puno stvari koje se ne bi mogle smatrati regularnim izrazima, jer su doslovni nizovi teksta stvarno jednostavni. Ako biste koristili 'abcde' kao regularni izraz, programski jezik tražio bi upravo taj niz.

Prvi dinamičniji podudarni znak koji treba pogledati je '.' lik. U ovom kontekstu, točkasti znak je zamjenski znak. Ako pretražujete s njim, vaš će program vratiti bilo koji znak koji pronađe kao podudaranje.

Pa, što ako želite potražiti doslovnu točku? Ni to nije teško. Kada želite upotrijebiti doslovno razdoblje, dodajte kosu crtu prije njega, ovako: '\.'

Znakovi povratne crte

Povratna crta ovdje ipak igra puno više uloga. Većina glavnih regex znakova uključuje kosu crtu.

Znamenke redovitog izraza
Pronalaženje znamenki pomoću regularnog izraza u Pythonu.

Pogledajte nekoliko primjera:

  • \ d: Znamenke od 0 do 9
  • \ w: Slova, znamenke i donja crta "Znakovi riječi"
  • \ s: razmaci, uključujući kartice, nove retke i redovite razmake

Ako umjesto bilo kojeg od ovih upotrijebite veliko slovo, dobit ćete obrnuto. Na primjer, '\ D' vam daje sve osim znamenki.

Nastava

The znakovi s kosom crtom su dobri, ali su i dalje nekako kruti. Općenito, poželjet ćete upariti slova, brojeve ili nekoliko posebnih znakova.

Redovni tečajevi izražavanja
Korištenje klasa Regex za pronalaženje slova u Pythonu.

Postavite znakove za koje želite da se podudaraju u par uglastih zagrada '[]' i vaš će se program podudarati s bilo kojim od njih. To se naziva klasa regularnih izraza.

[abcd1234]

Gornji je primjer još uvijek neučinkovit. Umjesto toga, crticom možete odrediti raspon; na primjer, sva mala slova:

[a-z]

Možete navesti i raspone. Izraz u nastavku odgovara svim slovima i znamenkama:

[a-zA-Z0-9]

Ako ćete crticu uključiti u svoj niz znakova, zalijepite je na kraju kako biste spriječili njezinu procjenu. Surađuje i s drugim posebnim likovima.

[a-zA-Z0-9 _. + -]

Kao i kod znakova s ​​obrnutom kosom crtom, i ovdje možete dobiti obrnuti rezultat. Na početak predavanja stavite '^' da biste ih izuzeli iz rezultata. To će iz rezultata isključiti znamenke i nekoliko posebnih znakova:

[^0-9_+.-]

Grupe

Grupe koriste skup zagrada kako bi razdvojile vaš izraz. Oni grupiraju podatke, omogućujući vašem programu da ih cilja i koristi. Kada program skine ' http://' s web adrese koristi regex grupe da bi to postigao. Redovni izraz omogućuje mu ciljanje određenih kriterija, a grupe ga odvajaju.

Grupe redovnog izražavanja
Pomoć Regex grupa Pronalaženje URL-ova u JavaScript-u.

Grupe vam također omogućuju odabir između jednog ili drugog uzorka. Oni zapošljavaju jedan "|" da djeluje kao "ili" u izrazu. Izraz u nastavku odgovarat će bilo kojem od ovih: .com, .org, .net, .edu ili .gov.

\. (com | org | net | edu | gov)

Kvantifikatori

Kvanfikanti su upravo onakvi kako zvuče. Izrazu govore količinu lika kojeg tražite. Ovo su dostupni kvantifikatori:

  • *: Nula ili više
  • +: Jedan ili više
  • ?: Nula ili jedan
  • {3}: iznos u zagradama

Bilo koji od ovih kvantifikatora stavite na kraj znaka ili klase čiji iznos želite odrediti. Ovaj primjer traži standardne sedmeroznamenkaste telefonske brojeve:

\ d {3} [. * -] \ d {3} [. * -] \ d {4}

Sidra i granice

Regularni izrazi omogućuju vam pretraživanje uzoraka na temelju njihovog položaja u nizu teksta ili oko riječi.

Sidra za redovito izražavanje
Regex sidra koriste pozicioniranje za pronalaženje podudaranja u JavaScript-u.

Ovo su vaše primarne mogućnosti:

  • ^: Početak niza
  • $: Kraj niza
  • \ b: Granica riječi (početak ili kraj riječi)

Ako želite pronaći samo nizove koji počinju slovom, možete pokušati:

^ [a-zA-Z]

Recimo da želite pronaći samo riječ "to", a ne riječi koje sadrže slova I i T; tu biste koristili granice riječi.

\ b (i | I) t \ b

Završne misli

Regularni izrazi mogu vam uštedjeti tonu glavobolje prilikom programiranja. Zamislite da pokušavate napisati logiku kako biste postigli bilo koji od primjera u ovom članku. Bio bi to užasan nered. Jednom kad se s njima ugodno osjećate, vjerojatno ćete zaista uživati ​​u snazi ​​i fleksibilnosti regexa.

instagram story viewer