Regulaarne väljend: mida see tähendab

click fraud protection

Mis on regulaarne väljend?

Regex või regulaarsed väljendid, on muster, mis sobib märgistusega programmeerijad kasutage tekstist teatud mustrite otsimiseks. Regulaaravaldised võivad otsida kõike, olenevalt sellest, kuidas te neid struktureerite; programmeerijad kasutavad neid kõikjal, sest need on hindamatud, et aidata arvutitel andmeid kiiresti sortida ja lollusi välja filtreerida, mis muidu võivad põhjustada vigu.

Regulaarsed väljendid kipuvad tunduma hirmutavad, eriti mitte programmeerijate jaoks. Vaadake lihtsalt seda:

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

Realistlikult pole see tegelikult nii hull; see sobib e-posti aadressidega. Nagu näete, saab väljendeid jagada üksikuteks märkideks, mis kõik ütlevad programmile, mida otsida.

Regulaarsed väljendid on peaaegu universaalsed. Sama kindral süntaks kehtib kõigis keeltes, siin ja seal on vaid väikesed erinevused. See juhend sisaldab nii Pythoni kui ka JavaScripti näiteid ja tavalist vana regexi. Kui töötate mõne muu keelega, ärge muretsege. Peaaegu kõik kehtib ka teie valitud keele kohta.

instagram viewer

Regexi põhitõed

Tehniliselt pole palju asju, mida ei saaks pidada regulaaravaldisteks, sest sõna otseses mõttes tekstistringid on tõesti lihtsad. Kui peaksite regulaaravaldisena kasutama 'abcde', otsiks programmeerimiskeel seda täpset stringi.

Esimene dünaamilisem sobituv märk, millele pilgu heita, on '.' iseloomu. Selles kontekstis on punktmärk metamärk. Kui otsite sellega, tagastab teie programm vastetena kõik leitud märgid.

Mis siis, kui soovite otsida sõnasõnalist punkti? Ka see pole raske. Kui soovite kasutada sõnasõnalist perioodi, lisage selle ette tagaskriips, näiteks järgmine: '\.'

Tagasi kaldkriipsuga tähemärgid

Tagasilöögil on siin aga veel palju rolle. Enamik peamisi regexi märke sisaldab tagasilööki.

Regulaaravaldise numbrid
Regexiga numbrite leidmine Pythonis.

Vaadake mõnda näidet:

  • \ d: numbrid 0 kuni 9
  • \ w: "Sõnamärgid" tähed, numbrid ja alakriipsud
  • \ s: tühimärgid, sh vahelehed, uued read ja tavalised tühikud

Kui kasutate selle asemel suurtähte, saate vastupidi. Näiteks annab \ \ D teile kõike muud kui numbreid.

Klassid

The tagasilöögimärgid on head, kuid on siiski kuidagi jäigad. Üldiselt soovite sobitada tähed, numbrid või mõne erimärgi.

Regulaaravalduse klassid
Regexi klasside kasutamine Pythonis tähtede leidmiseks.

Pange tähemärgid, mille soovite sobitada, nurksulgudesse [[]) ja teie programm sobib ühega neist. Seda nimetatakse regex klassiks.

[abcd1234]

Ülaltoodud näide on endiselt ebaefektiivne. Selle asemel võite vahemiku määramiseks kasutada kriipsu; näiteks kõik väikesed tähed:

[a-z]

Saate loetleda ka vahemikke. Allolev väljend sobib kõigi tähtede ja numbritega:

[a-zA-Z0-9]

Kui kavatsete kriipsu lisada oma märkide komplekti, kleepige see lõpus kinni, et vältida selle hindamist. See töötab ka teiste eritegelastega.

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

Sarnaselt tagasilöögimärkidega saate ka siin pöördvõrdelise tulemuse. Pange oma klassi algusesse '^', et see oma tulemustest välja jätta. See jätab tulemustest välja numbrid ja mitu erimärki:

[^0-9_+.-]

Grupid

Grupid kasutavad sulgude komplekti, et tükeldada teie väljend. Nad rühmitavad andmeid, võimaldades teie programmil neid sihtida ja kasutada. Kui programm eemaldab ' http://' Veebiaadressilt kasutab ta selleks regex-rühmi. Regex võimaldab sellel sihtida teatud kriteeriume ja rühmad lasevad sellel jaotised eraldada.

Regulaaravaldiste rühmad
Regex Groups aitab leida JavaScripti URL-e.

Grupid võimaldavad teil valida ka ühe või teise mustri vahel. Nad kasutavad ühte "|" toimida väljendis "või". Allpool olev väljend sobib mis tahes neist: .com, .org, .net, .edu või .gov.

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

Kvantorid

Kvantorid on täpselt sellised, nagu need kõlavad. Nad ütlevad väljendile otsitava tegelase koguse. Need on saadaolevad kvantorid:

  • *: Null või rohkem
  • +: Üks või mitu
  • ?: Null või üks
  • {3}: sulgudes olev summa

Asetage ükskõik milline neist kvantoritest märgi või klassi lõppu, mille suuruse soovite määrata. See näide otsib standardseid seitsmekohaseid telefoninumbreid:

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

Ankrud ja piirid

Regulaaravaldised võimaldavad teil mustreid otsida nende positsiooni põhjal tekstireas või sõna ümber.

Regulaaravaldise ankrud
Regexi ankrud kasutavad positsioneerimist JavaScripti vaste leidmiseks.

Need on teie peamised võimalused:

  • ^: Stringi algus
  • $: Stringi lõpp
  • \ b: sõna piir (sõna algus või lõpp)

Kui soovite leida ainult tähega algavaid stringe, võite proovida järgmist.

^ [a-zA-Z]

Oletame, et soovite leida lihtsalt sõna "see", mitte sõnu, mis sisaldavad tähti I ja T; seal kasutaksite sõnapiire.

\ b (i | I) t \ b

Lõpumõtted

Regulaarsed väljendid võivad programmeerimisel säästa tonni peavalu. Kujutage ette, et proovite kirjutada loogikat, et täita mõni selles artiklis toodud näide. See oleks kohutav segadus. Kui olete nendega rahul, avastate end tõenäoliselt regexi jõudu ja paindlikkust nautimas.

instagram story viewer