Redno izražanje: kaj to pomeni

click fraud protection

Kaj je redni izraz?

Regex, oz regularni izrazi, so vzorec, ki se ujema z oznako, ki programerji uporabite za iskanje določenih vzorcev v besedilu. Regularni izrazi lahko iščejo skoraj vse, odvisno od tega, kako jih strukturirate; programerji jih uporabljajo povsod, ker so neprecenljivi za pomoč računalnikom pri hitrem razvrščanju podatkov in filtriranju neumnosti, ki bi sicer lahko povzročile napake.

Regularni izrazi so videti zastrašujoče, zlasti za neprogramerje. Samo poglejte to:

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

Realno je, da pravzaprav ni tako slabo; ta se ujema z e-poštnimi naslovi. Kot boste videli, se izrazi lahko razdelijo na posamezne znake, ki vsemu programu sporočajo, kaj mora iskati.

Regularni izrazi so skoraj univerzalni. Isti general skladnja velja za vse jezike z le majhnimi različicami tu in tam. Ta priročnik vsebuje primere iz Pythona in JavaScript-a ter navadne stare regularne izraze. Če delate z drugim jezikom, ne skrbite. Skoraj vse bo veljalo tudi za vaš izbrani jezik.

instagram viewer

Osnove regexa

Tehnično gledano ni veliko stvari, ki jih ne bi mogli šteti za regularne izraze, ker so dobesedni nizi besedila res preprosti. Če bi uporabili 'abcde' kot regularni izraz, bi programski jezik poiskal točno ta niz.

Prvi bolj dinamičen ujemajoč se znak, ki si ga je treba ogledati, je '.' znak. V tem kontekstu je znak pike nadomestni znak. Če iščete z njim, bo program vrnil kateri koli znak, ki ga najde, kot ujemanje.

Kaj torej, če želite iskati dobesedno piko? Tudi to ni težko. Če želite uporabiti dobesedno piko, dodajte poševnico nazaj, takole: '\.'

Znaki povratne poševnice

Povratna poševnica ima tukaj veliko več vlog. Večina glavnih znakov regularnih izrazov vključuje poševnico nazaj.

Številke regularnega izraza
Iskanje številk z regularnim izrazom v Pythonu.

Oglejte si nekaj primerov:

  • \ d: Števke od 0 do 9
  • \ w: črke, številke in podčrtaji "Znaki v besedi"
  • \ s: presledki, vključno z zavihki, novimi vrsticami in običajnimi presledki

Če namesto katerega koli od njih uporabite veliko začetnico, boste dobili obratno. Na primer, \ \ D vam da vse, razen številk.

Predavanja

The znaki povratne poševnice so dobri, vendar so še vedno nekako togi. Na splošno se boste želeli ujemati s črkami, številkami ali nekaj posebnimi znaki.

Redni izrazi
Uporaba razredov regularnih izrazov za iskanje črk v Pythonu.

Postavite znake, za katere želite, da se ujemajo, v par oglatih oklepajev '[]' in vaš program se bo ujemal s katerim koli. To se imenuje razred regularnih izrazov.

[abcd1234]

Zgornji primer je še vedno neučinkovit. Namesto tega lahko s pomišljajem določite obseg; na primer vse male črke:

[a-z]

Lahko navedete tudi obsege. Spodnji izraz se ujema z vsemi črkami in številkami:

[a-zA-Z0-9]

Če boste pomišljaj vključili v svoj nabor znakov, ga na koncu pritrdite, da preprečite njegovo oceno. Deluje tudi z drugimi posebnimi znaki.

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

Tako kot pri znakih s poševnico nazaj lahko tudi tukaj dobite obratni rezultat. Na začetek predavanja postavite '^', da jih izključite iz rezultatov. To bo iz rezultatov izključilo številke in več posebnih znakov:

[^0-9_+.-]

Skupine

Skupine uporabljajo niz oklepajev, da ločijo vaš izraz. Združujejo podatke in omogočajo, da jih vaš program cilja in uporablja. Ko program odstrani http://' s spletnega naslova za to uporablja skupine regularnih izrazov. Regex omogoča, da cilja na določena merila, skupine pa naj ločijo odseke.

Skupine z običajnim izrazom
Pomoč za skupine Regex Poiščite URL-je v JavaScript.

Skupine vam omogočajo tudi izbiro med enim ali drugim vzorcem. Uporabljajo en sam "|" da deluje kot "ali" v izrazu. Spodnji izraz se bo ujemal s katerim koli od teh: .com, .org, .net, .edu ali .gov.

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

Merilniki

Merilniki so točno takšni, kot zvenijo. Izrazu povedo količino znaka, ki ga iščete. To so razpoložljivi količniki:

  • *: Nič ali več
  • +: Ena ali več
  • ?: Nič ali ena
  • {3}: znesek v oklepajih

Kateri koli od teh merilnikov postavite na konec znaka ali razreda, za katerega želite določiti količino. Ta primer išče standardne sedemmestne telefonske številke:

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

Sidra in meje

Regularni izrazi vam omogočajo iskanje vzorcev glede na njihov položaj v nizu besedila ali okoli besede.

Sidra za regularni izraz
Sidra Regex uporabljajo pozicioniranje za iskanje ujemanja v JavaScript.

To so vaše glavne možnosti:

  • ^: Začetek niza
  • $: Konec niza
  • \ b: meja besede (začetek ali konec besede)

Če želite najti samo nize, ki se začnejo s črko, lahko poskusite:

^ [a-zA-Z]

Recimo, da želite najti samo besedo "it", ne besed, ki vsebujejo črki I in T; tam bi uporabili besedne meje.

\ b (i | I) t \ b

Končne misli

Regularni izrazi vam lahko prihranijo veliko preglavic pri programiranju. Predstavljajte si, kako poskušate napisati logiko za izvedbo katerega koli primera v tem članku. Bila bi strašna zmešnjava. Ko se z njimi počutite udobno, boste verjetno resnično uživali v moči in prilagodljivosti regularnega izraza.

instagram story viewer