Säännöllinen lauseke: Mitä se tarkoittaa

click fraud protection

Mikä on säännöllinen lauseke?

Regex tai säännölliset lausekkeetovat mallin mukaisia ​​merkintöjä, jotka ohjelmoijat käytetään etsimään tiettyjä kuvioita tekstistä. Säännölliset lausekkeet voivat etsiä melkein mitä tahansa sen mukaan, miten ne rakennetaan; ohjelmoijat käyttävät niitä kaikkialla, koska ne ovat korvaamattomia, kun ne auttavat tietokoneita lajittelemaan tietoja nopeasti ja suodattamaan hölynpölyä, joka muuten aiheuttaisi virheitä.

Säännölliset lausekkeet näyttävät olevan pelottavia etenkin muille kuin ohjelmoijille. Katsokaa vain tätä:

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

Realistisesti se ei todellakaan ole niin paha; että yksi vastaa sähköpostiosoitteita. Kuten näette, lausekkeet voidaan jakaa yksittäisiin merkkeihin, jotka kaikki kertovat ohjelmalle, mitä etsiä.

Säännölliset lausekkeet ovat melkein yleismaailmallisia. Sama kenraali syntaksi pätee kaikkiin kieliin vain pienillä vaihteluilla täällä ja siellä. Tämä opas sisältää esimerkkejä sekä Pythonista että JavaScriptistä sekä tavallisen vanhan regexin. Jos työskentelet eri kielellä, älä huoli. Lähes kaikki koskee myös valitsemaasi kieltä.

instagram viewer

Regex-perusteet

Teknisesti ei ole paljon asioita, joita ei voida pitää säännöllisinä lausekkeina, koska kirjaimelliset tekstijonot ovat todella yksinkertaisia. Jos aiot käyttää 'abcde' säännöllisenä lausekkeena, ohjelmointikieli etsii tarkkaa merkkijonoa.

Ensimmäinen dynaamisempi vastaava merkki on ''. merkki. Tässä yhteydessä pistemerkki on jokerimerkki. Jos etsit sitä, ohjelma palauttaa kaikki merkit, jotka se löytää vastaavina.

Joten, mitä jos haluat etsiä kirjaimellista pistettä? Se ei myöskään ole vaikeaa. Kun haluat käyttää kirjaimellista jaksoa, lisää taaksepäin vinoviiva, kuten tämä: '\.

Takasuuntaiset viivat

Taaksepilkulla on kuitenkin paljon enemmän rooleja. Suurin osa tärkeimmistä regex-merkkeistä sisältää taaksepäin viivan.

Säännöllisen lausekkeen numerot
Lukujen etsiminen regexillä Pythonissa.

Katso muutama esimerkki:

  • \ d: Numerot 0-9
  • \ w: "Sanamerkit" kirjaimet, numerot ja alleviivatut
  • \ s: Välilyönnit, mukaan lukien välilehdet, uudet viivat ja tavalliset välilyönnit

Jos käytät isoa kirjainta minkä tahansa näistä, saat päinvastaisen. Esimerkiksi '\ D' antaa sinulle kaiken paitsi numerot.

Luokat

taaksepäin vinoviiva ovat hyviä, mutta ne ovat silti tavallaan jäykkiä. Yleensä haluat sovittaa joko kirjaimet, numerot tai muutaman erikoismerkin.

Säännölliset lausekkeet
Regex-luokkien käyttäminen kirjainten etsimiseen Pythonissa.

Aseta merkit, jotka haluat yhdistää hakasulkeisiin '[]], ja ohjelma sopii mihinkään niistä. Tätä kutsutaan regex-luokaksi.

[abcd1234]

Yllä oleva esimerkki on edelleen tehoton. Sen sijaan voit määrittää välin viivalla; esimerkiksi kaikki pienet kirjaimet:

[a-z]

Voit myös luetella alueita. Seuraava lauseke vastaa kaikkia kirjaimia ja numeroita:

[a-zA-Z0-9]

Jos aiot sisällyttää viivan merkkisarjaasi, kiinnitä se loppuun, jotta sitä ei voida arvioida. Se toimii myös muiden erikoismerkkien kanssa.

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

Kuten käänteisen viivan merkkien kohdalla, myös tässä saat käänteisen tuloksen. Sijoita '^' luokkasi alkuun sulkeaksesi ne pois tuloksista. Tämä sulkee pois numerot ja useita erikoismerkkejä tuloksista:

[^0-9_+.-]

Ryhmät

Ryhmät käyttävät joukkoa sulkeita erottamaan lausekkeesi. He ryhmittelevät tietoja, jolloin ohjelmasi voi kohdistaa ja käyttää sitä. Kun ohjelma riisuu http://' verkko-osoitteesta, se käyttää regex-ryhmiä sen saavuttamiseksi. Regex antaa sen kohdistaa tiettyihin kriteereihin, ja ryhmät antavat sen erillisiksi osioiksi.

Säännölliset lausekeryhmät
Regex-ryhmät auttavat löytämään URL-osoitteet JavaScriptistä.

Ryhmien avulla voit myös valita yhden tai toisen mallin. He käyttävät yhtä "|" toimia lausekkeessa "tai". Alla oleva ilmaus vastaa mitä tahansa näistä: .com, .org, .net, .edu tai .gov.

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

Määrällisyys

Mittarit ovat juuri sellaisia ​​kuin ne kuulostavat. Ne kertovat ilmaisulle etsimäsi hahmon määrän. Nämä ovat käytettävissä olevia määrittelijöitä:

  • *: Nolla tai enemmän
  • +: Yksi tai useampi
  • ?: Nolla tai yksi
  • {3}: Suluissa oleva summa

Sijoita mikä tahansa näistä määristä sen merkin tai luokan loppuun, jonka määrän haluat määrittää. Tässä esimerkissä etsitään tavanomaisia ​​seitsemänumeroisia puhelinnumeroita:

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

Ankkurit ja rajat

Säännöllisten lausekkeiden avulla voit etsiä malleja niiden sijainnin perusteella tekstijonossa tai sanan ympärillä.

Säännöllisen lausekkeen ankkurit
Regex-ankkurit paikannuksen avulla löytävät vastaavuuden JavaScriptistä.

Nämä ovat ensisijaisia ​​vaihtoehtojasi:

  • ^: Merkkijonon alku
  • $: Merkkijonon loppu
  • \ b: Sanaraja (sanan alku tai loppu)

Jos haluat löytää vain merkkijonoja, jotka alkavat kirjaimella, voit kokeilla:

^ [a-zA-Z]

Sano, että haluat löytää vain sanan "se", ei sanoja, jotka sisältävät kirjaimet I ja T; siinä käytetään sanarajoja.

\ b (i | I) t \ b

Lopulliset ajatukset

Säännölliset lausekkeet voivat säästää paljon päänsärkyä ohjelmoinnissa. Kuvittele, kuinka yrität kirjoittaa logiikkaa minkä tahansa tämän artikkelin esimerkin toteuttamiseksi. Se olisi kauhea sotku. Kun olet viihtynyt heidän kanssaan, huomaat todennäköisesti nauttivan regexin voimasta ja joustavuudesta.

instagram story viewer