Regexin käytön aloittaminen pikakuvakkeet-sovelluksen kanssa

click fraud protection

Noin viimeisen kuukauden aikana olen käsitellyt pikakuvakkeet ja Automator-sovelluksia iOS- ja macOS-järjestelmissä. Molemmat ovat Applen ekosysteemin automaation voimatekijöitä, ja tämän syksyn macOS Montereystä alkaen Shortcuts on kaikkien Apple-laitteiden automaatiosovellus. Tästä syystä halusin käyttää tämän artikkelin keskustelemaan erittäin tehokkaasta aiheesta: Regexin käyttäminen Pikakuvakkeet-sovelluksen kanssa.

Vaikka minulla on jonkin verran taustaa tietojenkäsittelytieteessä ja ohjelmoinnissa, en ollut jotenkin koskaan törmännyt regexiin. Ehkä nimi pelotti minut, tai ehkä se oli koodi, joka on yksi vähiten luettavasta koodista, jonka olen koskaan nähnyt.

Joka tapauksessa päätin tarkastella regexiä tarkemmin, kun olen käsitellyt Pikakuvakkeet-sovellusta muutaman viime kuukauden aikana. Ja huomasin, että monet rajoitukset, joihin olin törmännyt pikanäppäimillä ja Automatorilla, voitiin voittaa regexillä.

Toisin sanoen kyse ei ollut siitä, että näistä sovelluksista puuttuisi ominaisuuksia, vaan minulta puuttui koulutus.

Joten tämänpäiväisessä viestissä sinä ja minä aiomme oppia yhdessä regexin läpikotaisin. Tällä tavalla saat kaiken irti kaikista näistä sovelluksista.

Aiomme kattaa regexin perusteet (alkaen siitä, mitä se on), mitä voit tehdä sillä Pikakuvakkeet-sovelluksessa, joillakin verkkosivustoilla ja resursseja, joita voit käyttää, jos et halua oppia säännöllistä lausetta itse, ja sitten menemme säännöllisen lausekkeen ydinkäsitteisiin ja mekaniikkaan Kieli.

Selvä, aloitetaan!

Sisällys

  • Mitä ovat säännölliset lausekkeet (eli säännöllinen lauseke)?
    • Asiat, joita voit tehdä säännöllisellä lausekkeella
  • Kuinka voit käyttää regexiä Pikakuvakkeet-sovelluksen kanssa?
  • Käytä regex101.com-sivustoa säännöllisten lausekkeiden testaamiseen
  • Jos et halua oppia käyttämään regexiä Pikakuvakkeet-sovelluksen kanssa, lue tämä
  • Regex aloittelijoille: Aloita regexin käyttö pikanäppäimillä
    • Mitä ovat regex-maut?
    • Verkkosivustot ja viittaukset, joiden avulla voit aloittaa regexin oppimisen pikanäppäimillä
    • Perustekstihaun suorittaminen säännöllisellä lausekkeella pikanäppäimillä
    • Muuttuvien komponenttien lisääminen säännöllisen lausekkeen hakuihisi
    • Alueet voivat laajentaa hakuasi
    • Sanojen ja merkkien sulkeminen pois säännöllisestä lausekkeesta hauista pikanäppäimillä
    • Jokerimerkit voivat tarjota sinulle enemmän hakuvaihtoehtoja
    • Käytä kvantareita määrittääksesi etsimäsi tekstin pituuden
    • Haluat tietää vielä muutamasta kvantitaattorista
    • Etsi merkkejä tekstijonon alusta ja lopusta
    • Tallenna tekstimerkkijonoja käyttämällä säännöllisen lausekkeen ryhmittelytoimintoa pikanäppäimillä
  • Mitä nyt?
    • Miten rikkoisit tämän?
  • Aloita regexin käyttö pikanäppäimillä viedäksesi automaatiosi uudelle tasolle
    • Aiheeseen liittyvät julkaisut:

Mitä ovat säännölliset lausekkeet (eli säännöllinen lauseke)?

Säännöllinen lauseke tai "regex" on koodinpätkä, jonka avulla voit etsiä tekstiä suuremman tekstikappaleen sisältä.

Jos et tiedä, toisen tekstin sisällä olevaa tekstiä kutsutaan ohjelmoinnin "merkkijonoksi". Esimerkiksi sana "vihreä" on merkkijono tekstistä "Käytin tänään vihreitä housuja".

Toisin sanoen regex on tapa paikantaa tekstijono suuremmasta tekstistä. Ja koska regex on kirjoitettu koodilla, voit käyttää sitä melko monimutkaisten toimintojen suorittamiseen.

Jos esimerkiksi haluat etsiä sanaa "sähköposti", voit kirjoittaa helposti regex-koodin, joka etsii sähköpostia.

Jos kuitenkin haluat löytää sähköpostin, joka on kappaleen sisällä, etkä tiedä tarkalleen, mitä se on, sinun on etsittävä tekstijonoa, joka on muotoiltu sähköpostin tapaan. eli merkkijono, joka seuraa "[sähköposti suojattu]”-muodossa.

Oletetaan nyt, että et halua löytää vain yhtä sähköpostiviestiä kappaleesta, vaan joka sähköposti. Ehkä haluat kopioida ne nopeasti jonnekin muualle, päivittää ne uuteen muotoon tai korvata ne niin, että ne kaikki sanovat "[sähköposti suojattu]“.

Kun saat yhä enemmän taitavia ja kokeneempia regexin kanssa, pystyt tekemään kaikki nämä asiat ja paljon muuta.

Asiat, joita voit tehdä säännöllisellä lausekkeella

Selvä, joten ehkä juuri antamani esimerkit sähköpostilla eivät ole niin käytännöllisiä. Älä huoli – se on kaukana siitä, mitä voit saavuttaa käyttämällä regexiä Pikakuvakkeet-sovelluksella.

Yleisesti ottaen kaikki, mitä regex voi tehdä, kuuluu johonkin näistä neljästä kategoriasta:

  1. Etsi tekstimerkkijono suuremmasta tekstistä (eli etsi sanaa/merkkijonoa/merkkijonotyyppiä tekstisivulta).
  2. Varmista, että tekstimerkkijono vastaa haluamaasi muotoa (eli tarkista, että tekstimerkkijono on kirjoitettu isoilla kirjaimilla/järjestys/välimerkit oikein).
  3. Korvaa tai lisää tekstiä tietylle tekstin alueelle.
  4. Jaa tekstijono määritetyistä kohdista (esim. jaa tekstiosa aina, kun on pilkku).

Kunkin tällaisten toimintojen vuorovaikutuksessa käytettävä syvyys ja niiden yhdistäminen tekevät regexistä uskomattoman tehokkaan työkalun tekstin jäsentämiseen ja käsittelyyn.

Kuinka voit käyttää regexiä Pikakuvakkeet-sovelluksen kanssa?

Selvä, joten toivottavasti sinulla on nyt peruskäsitys siitä, mihin regexiä käytetään. Se on eräänlainen koodi, jota voit käyttää tekstin etsimiseen, vaikka et tiedä tarkalleen, mikä teksti on.

Joten kuinka tämä auttaa sinua Pikakuvakkeissa? Samalla tavalla kuin komentosarjojen lisääminen pikakuvakkeisiin, se on tapa siirtyä perusautomaatioista (Laita minulle tekstiviesti, kun etuovi avautuu) edistyneempiin vaihtoehtoihin (Luo automaattisesti kalenteritapahtuma kokouksilleni aina, kun saan töistä sähköpostiviestin Zoom-kokouksesta).

Voit käyttää säännöllistä lauseketta pikanäppäimien kanssa tarkistaaksesi, että syöte on oikea. Jos esimerkiksi luot pikakuvakkeen, joka toimii vain URL-osoitteiden kanssa, voit käyttää säännöllistä lauseketta pikakuvakkeen alussa varmistaaksesi, että käyttäjä suorittaa automaation URL-osoitteessa.

Voit yhdistää regexin komentosarjoihin luodaksesi tehokkaita pikakuvakkeita. Esimerkiksi, tämä pikakuvake käyttää säännöllistä lauseketta ja komentosarjoja muuttaakseen viivakoodin suosikkikauppasi URL-osoitteeksi.

Kun käytät Pikakuvakkeet-sovellusta Macissa (tulossa syksyllä 2021), voit käyttää säännöllistä lauseketta erätoimintojen suorittamiseen tekstipalalle. Voit esimerkiksi kopioida kaikki valitussa tekstissä olevat sähköpostit järjestetyksi luetteloksi. Tai voit korvata kaikki asiakirjan nimet "*"-merkeillä yksityisyyden takaamiseksi.

Voit jopa kopioida tekstiosan yhdestä sovelluksesta, muotoilla sen uudelleen vastaamaan toisen sovelluksen asetuksia ja liittää sen sitten toiseen sovellukseen yhdellä hiiren kakkospainikkeella.

Toisin sanoen regex antaa sinulle täydellisen hallinnan tekstin käsittelyyn Pikakuvakkeet-sovelluksella. Se ei ehkä aluksi kuulosta kovin hyödylliseltä, mutta nyt kun tiedät sen olemassaolon, alat varmasti huomata, kuinka monta pikakuvaketta tällä ominaisuudella voitaisiin parantaa. Huomaat myös, että monet pikakuvakkeet eivät ole edes mahdollisia ilman regexiä.

Käytä regex101.com-sivustoa säännöllisten lausekkeiden testaamiseen

Kun alat käyttää regexiä pikakuvakkeiden kanssa, joudut turhautumaan:

On todella vaikeaa testata regex-koodiasi. Ja se ei ole vain regexille. Minkä tahansa testaaminen Pikakuvakkeet-sovelluksella on tavallaan tuskaa. Ainoa tapa tehdä se on suorittaa pikakuvake. Tämä menetelmä ei ole huono, kun vain testaat sisäänrakennettuja pikakuvakkeiden ominaisuuksia.

Mutta koodin testauksessa tämä ei salli rivikohtaista tarkistusta, eikä se tarjoa paljon palautetta.

Tätä varten suosittelen käyttämään regex101.com-sivustoa. Se on sivusto, johon voit kirjoittaa regex-koodin reaaliajassa. Voit myös kirjoittaa tekstiä samalla verkkosivulla olevaan tekstieditoriin. Kun kirjoitat kutakin, näet, toimiiko säännöllinen lauseke, miksi se toimii tai ei, ja saat tietoa löydetyistä osumista.

regex101.com käyttää erilaista regex-muotoa kuin pikakuvakkeiden tukema (sitä lisää hetkessä), mutta se on tarpeeksi lähellä, jotta sinun ei pitäisi törmätä liian moniin ongelmiin.

Tämän työkalun käyttäminen on hienoa, koska voit kirjoittaa regexin sinne ensin ja kopioida sen sitten Pikakuvakkeet-sovellukseen, kun se toimii tarkoitetulla tavalla.

Jos et halua oppia käyttämään regexiä Pikakuvakkeet-sovelluksen kanssa, lue tämä

Ymmärrän sen – kaikki eivät halua oppia käyttämään regexiä pikakuvakkeiden kanssa. Se on taito, ja se tarkoittaa, että se vaatii aikaa ja harjoittelua. Se ei ole läheskään yhtä yksinkertaista kuin muut Pikakuvakkeet-sovelluksen vedä ja pudota -ominaisuudet.

Ei huolia! Vaikka et voi saada niin paljon irti Shortcuts-sovelluksesta kuin joku, joka käyttää aikaa regexin oppimiseen, käytettävissäsi on silti vaihtoehtoja. Nimittäin verkossa on sivustoja ja sivuja, joilla ihmiset ovat luoneet luettelon regex-koodin puremista, jotka voit kopioida ja liittää Pikakuvakkeet-sovellukseen.

Tässä on joitain linkkejä, joita voit tarkistaa, jos et halua oppia säännöllistä sanaa:

  • https://www.shortcutfoo.com/app/dojos/regex/cheatsheet
  • https://www.reddit.com/r/shortcuts/comments/9zo24n/regex_cookbook_for_shortcuts_reusable_regex_to/
  • https://www.reddit.com/r/shortcuts/comments/b5labq/match_text_examples_for_the_beginner_a_regex/
  • http://www.rexegg.com/regex-cookbook.html

Lue nämä linkit läpi ja sinun pitäisi pystyä löytämään yleisiä regex-ratkaisuja pikanäppäimille, jotka haluat tehdä. Tämä ei ole koulutusvapaa vaihtoehto, sillä kestää silti jonkin aikaa ymmärtää mitä katsot. Mutta se on paljon yksinkertaisempi ja ihanteellinen ratkaisu jollekin, jolla ei ole aikaa harjoitella säännöllistä sanamuotoa.

Minun on kuitenkin myönnettävä, että regex ei ole liian vaikea oppia, varsinkin jos sinulla on kokemusta shell-koodista tai aloittelijan ohjelmoinnista. Regex kuulosti minusta aluksi hölynpölyltä, mutta tunnin luettuani artikkeleita ja pelattuani regex101.com-sivustolla pystyin kirjoittamaan regexiä pikakuvakkeilleni.

Se on vain tuttu asia – kun katsot sitä tarpeeksi kauan, se ei enää näytä niin oudolta. Joten jos sinulla on aikaa ja olet vain peloissasi, älä ole!

Regex aloittelijoille: Aloita regexin käyttö pikanäppäimillä

Okei, riittää esipuhe! Sinulla tulee olla käsitys siitä, mitä regex on, mitä se voi tehdä, miksi sinun pitäisi oppia se, ja riittävästi tietoa päättääksesi, haluatko oppia sen. Nyt mennään tiukkaan siivoukseen.

Alla on paljon sisältöä, mutta älä huoli! Tämä artikkeli tulee olemaan enemmän opinto-opas. Suosittelen käymään läpi jokaisen osan, jotta saat käsityksen regexin käyttämästä mekaniikasta. Tämän pitäisi myös auttaa sinua käärimään pääsi sen ympärille, jos olet edelleen hämmentynyt siitä, mitä regex on.

Kun olet selaillut asioita, suosittelen avaamaan regex101.com-sivuston ja pelaamaan jokaisella alla olevan osion työkaluilla. Tämä auttaa sinua näkemään, miltä käsitteet näyttävät käytännössä, sekä parantaa muistiasi. Kun olet tehnyt sen, voit käsitellä tätä artikkelia vertailukohtana – johon voit palata, kun unohdat regexin palaset.

OK, mennään!

Mitä ovat regex-maut?

Ensinnäkin aiomme tarkastella regex-makuja. Älä huoli – tämä ei vaikuta päivittäiseen regexin käyttöön pikakuvakkeiden kanssa. Se on vain asia, joka tulee olla tietoinen ennen kuin aloitat.

Regexistä on olemassa erilaisia ​​versioita, jotka tunnetaan "makuina". Nämä eri versiot ovat edelleen hyvin samanlaisia. Jos opit lukemaan ja kirjoittamaan yhtä makua, sinun pitäisi pystyä lukemaan mitä tahansa niistä. Regex-koodin muotoilussa on vain pieniä eroja.

Ohjelmoinnissa nämä muotoilutiedot tunnetaan "syntaksina". Tämä on vain tapa, jolla sinun on kirjoitettava koodi, jotta sovellus, johon kirjoitat, ymmärtää koodin.

Tässä on syy, miksi syntaksilla on merkitystä

"Hei ystävä, miten päiväsi menee?"

", meneekö ystävä? hei päivä miten”

Molemmissa lauseissa on samat sanat, merkit ja välilyönnit. Vain yksi on kuitenkin järkevää, ja se johtuu siitä, että se noudattaa perinteistä syntaksia.

Koodauksessa yksi ohjelmointikieli saattaa ymmärtää ensimmäistä versiota, mutta ei toista. Toiselle ohjelmointikielelle toinen saattaa kuitenkin olla täysin järkevä, kun taas ensimmäinen näyttää hölynpölyltä. Joku, joka osaa englantia, voi kuitenkin luultavasti ymmärtää molempien rivien tarkoituksen, vaikka niiden merkityksen ymmärtäminen vaatiikin vähän työtä.

Tällaisia ​​ovat (tavallaan) regexin eri maut. He kaikki näyttävät hieman erilaisilta ja vähän samanlaisilta kuin sinä. Mutta sinun on käytettävä käyttämäsi sovelluksen oikeaa makua, tai muuten sovelluksella ei ole aavistustakaan kirjoittamastasi.

Pikakuvakkeet-sovellus ymmärtää ICU-maun regexin, joten haluat käyttää sitä makua. Regex101.com-sivustolla on muutamia erilaisia ​​makuja, joista voit valita sivun vasemmasta reunasta. Se käyttää kuitenkin PCRE: tä, joka on melko samanlainen kuin ICU.

On tärkeää tietää, että regexillä on erilaisia ​​makuja, koska epäilemättä törmäät erilaisiin makuihin verkossa. Jos löydät jonkin verran regexiä, jonka haluat varastaa, mutta et saa sitä toimimaan pikakuvakkeiden kanssa tai se ei vain näytä oikealta, tarkista, millä maulla se on kirjoitettu!

Verkkosivustot ja viittaukset, joiden avulla voit aloittaa regexin oppimisen pikanäppäimillä

Toinen asia, jonka haluan käsitellä ennen kuin alamme tutkia säännöllisen lausekkeen kirjoittamisen todellista mekaniikkaa, ovat resurssit. En missään tapauksessa väitä, että tämä viesti on tyhjentävä resurssi regexin oppimiseen. Se on tarkoitettu vain hyödylliseksi aloituspisteeksi niille, jotka haluavat käyttää regexiä pikakuvakkeiden kanssa.

Jos haluat sukeltaa syvemmälle regexiin tai sinusta tuntuu, että tämä artikkeli ei anna sinulle tarvitsemaasi apua, voit tutustua joihinkin näistä artikkeleista, oppaista ja työkaluista:

  • https://regex101.com – Verkkosivusto, jonka avulla voit testata regex-koodiasi reaaliajassa.
  • https://www.shortcutfoo.com/app/dojos/regex/cheatsheet – Huijauslehti, kun unohdat jokaisen hahmon tekemisen
  • http://www.rexegg.com – Tämä sivusto on kattava resurssi, jonka avulla voit oppia kaiken, mitä sinun tarvitsee tietää regexistä. Katso tämä, jos haluat oppia käyttämään regexiä.
  • https://scottwillsey.com/blog/ios/regex1/ – Tämä on neliosainen blogisarja regexin käytöstä pikakuvakkeiden kanssa. Käytän hyvin erilaista lähestymistapaa kuin tämä opas, joten sen pitäisi olla mukava kumppanisarja tälle artikkelille.
  • Stack Overflow ja Reddit ovat molemmat hyviä verkkosivustoja, joissa voit jakaa regex-kysymyksesi ja edistyä saadaksesi neuvoja ja vastauksia.

Nämä resurssit eroavat luettelossa luetelluista Jos et halua oppia käyttämään regexiä Pikakuvakkeet-sovelluksen kanssa -osiossa, koska ne kaikki edellyttävät, että aloitat säännöllisen sanan oppimisen. Ne ovat kattavampia, kun taas muut ovat vain vertailukohtia.

Perustekstihaun suorittaminen säännöllisellä lausekkeella pikanäppäimillä

Hyvä on! Olemme nyt päässeet siihen pisteeseen, jota kaikki ovat odottaneet: Aiomme oppia perusasiat regexin käytöstä pikanäppäinten kanssa.

Aloitetaan perushaulla, koska tämä on yksinkertaisin asia, jonka voit tehdä regexillä. Kuten aiemmin mainittiin, suosittelen, että regex101.com avataan toisessa välilehdessä, jotta voit seurata mukana.

Kaikkein yksinkertaisimmillaan regex etsii (tai ottelu) mitä tahansa kirjoitat siihen. Esimerkiksi jos kirjoittaisin Hyvä on säännöllinen lausekekoodini se löytää jokaisen sanan "Hyvä on" esiintymän tässä oppaassa.

Kirjainkoolla, välilyönnillä ja välimerkeillä on merkitystä. Se tarkoittaa sitä Hyvä on, hyvä on, Hyvä on!, ja Hyvä on , kaikki tuottavat erilaisia ​​​​tuloksia.

Ja siinä se! Aina kun kirjoitat jotain regex-hakuun ilman erikoismerkkejä, säännöllinen lauseke vastaa mitä tahansa kirjoittamaasi.

On yksi saalis! Jotkut näppäimistösi merkit ovat myös erikoissäännöllisiä merkkejä. Tämä tarkoittaa, että ne suorittavat jonkinlaisen toiminnon regex-koodissa.

The ? symboli on yksi tällainen merkki. Sitä käytetään regex-koodissa kvantisoijana. Joten jos yrität etsiä "Hyvä on?" kirjoittamalla Hyvä on? säännöllinen lausekekoodisi, et saa mitä haluat.

Korjataksesi tämän sinun on määritettävä, että haluat käyttää "?" merkkijonona, ei erikoismerkkinä. Voit tehdä sen tälle tai jollekin muulle hahmolle lisäämällä a \ symboli ennen merkkiä, jonka erityisominaisuudet haluat mitätöidä.

Joten jos haluat etsiä "Hyvä on?" säännöllisen lausekkeen kanssa koodisi näyttää tältä:

Hyvä on\?

Jos et ole varma, käsitelläänkö säännöllinen lauseke tiettyä merkkiä erikoismerkkinä, voit tarkistaa tämä huijauslehti kaikille säännöllisen lausekkeen erikoismerkeille.

Hae useampaa kuin yhtä sanaa "tai"-merkillä

Toinen tärkeä osa merkkijonojen etsimistä säännöllisellä lausekkeella on "tai"-funktion käyttö. Tämä on hahmo, jonka voit sijoittaa kahden sanan/merkin väliin sanoaksesi "Yhdistä tämä tai tämä".

Jos esimerkiksi haluan etsiä tekstistä sanat "okei" ja "okei", käyttäisin | merkki. Niin kuin:

Selvä | okei

Jos sinulla on vaikeuksia löytää | merkki, pidä siirtää näppäin alas ja paina \ avain. Se on yläpuolella palata näppäin useimmilla näppäimistöillä.

Muuttuvien komponenttien lisääminen säännöllisen lausekkeen hakuihisi

Ok, joten nyt kun tiedät millaista neutraali regex on, on aika valita ensimmäinen erikoishahmosi. Se olisi hakasulku, jotka ovat nämä asiat [].

Mitä tahansa laitat näihin hakasulkeisiin, sitä pidetään säännöllisen lausekkeen haun muuttuvana osana. Voit laittaa hakasulkeisiin niin monta merkkiä kuin haluat, mutta vain yksi on kelvollinen ottelua kohden.

Selvä, se kuulostaa hieman monimutkaiselta, mutta se ei ole sitä! Tältä se näyttää käytännössä:

  • [Hyvä on vastaa vain sanaa "Hyvä on". Jotenkin turhaa.
  • [AB]Hyvä on vastaa sekä "Alright" että "Blright".
  • Alr[iouxyz]ght vastaa "Alright", "Alroght", "Alrught", "Alrxght" ja niin edelleen.

Voit yhdistää merkkejä suluissa sekä käyttää useita sulkumerkkejä samalla säännöllisen lausekkeen rivillä. [AB]r[i1]gh[tuvwxyz] on kelvollinen säännöllinen lauseke. Toivottavasti se ei kuitenkaan näytä aivan niin kaoottiselta kuin muutama minuutti sitten!

Alueet voivat laajentaa hakuasi

Seuraava regex-osio, joka on hyödyllinen pikakuvakkeiden kanssa, on alue. Alueet mahdollistavat hyväksymiesi merkkien määrittämisen.

Olet ehkä huomannut edellisessä osiossa, että suluissani oli paljon peräkkäisiä kirjaimia. Pisin oli [tuvwxyz]. Nämä kirjaimet näkyvät aakkosissa samassa järjestyksessä, aivan vierekkäin.

Tämä tarkoittaa, että voisin käyttää aluetta kirjoittamisen sijaan. Se näyttäisi tältä:

Selvä[t-z]

Tämä regex-koodin osa toimii samoin kuin Selvä[tuvwxyz]. Se on vain siistimpää ja helpompi kirjoittaa.

Voit korvata saman alueen [a-z] jos haluat sen hyväksyvän minkä tahansa pienen kirjaimen aakkosesta. Tai voit käyttää [0-9] jos haluat hyväksyä minkä tahansa yksinumeroisen luvun.

Voit myös yhdistää alueita samassa haarukassa. Esimerkiksi tämä Alr[i-ux-z]ght hyväksyy "Hyvä on", "Hyvä on", "Hyvä on" ja "Alryght", mutta se ei hyväksy "Alraght" tai "Alrvght".

Sanasta "Hyvä on" on muitakin muunnelmia, jotka tämä koodi muuten hyväksyy, ja monia muita muunnelmia, joita se ei hyväksy. Tämä on vain lyhyt valinta, jotta asiat jäävät lyhyeksi.

Jos sinun on vaikea ymmärtää mitä [i-ux-z] tarkoittaa, että voisi auttaa, jos se kirjoitetaan näin:

[i-u, x-z]

Se ei ole oikea regex-syntaksi – sinun ei pitäisi käyttää pilkkua erottelemaan alueita. Mutta toivottavasti se auttaa ymmärtämään paremmin!

Sinun ei tarvitse pilkkuja säännölliseen lausekkeeseen erottaaksesi alueet, eikä sinun tarvitse laittaa alueita vierekkäin. Voisit vaihtaa sen [i-uabcx-z]. Tämä hyväksyisi samat alueet kuin aiemmin sekä merkit "a", "b" ja "c".

Sanojen ja merkkien sulkeminen pois säännöllisestä lausekkeesta hauista pikanäppäimillä

Okei, joten nyt ollaan menossa jonnekin! Jos olet seurannut tätä artikkelia tähän asti, sinun pitäisi pystyä katsomaan alla olevaa koodia ja ymmärtämään, mitä se vastaa:

Ap[p-r]le[Tt]ool[BbLF]ox

Jos osaat lukea sen, tiedät, että osa regex-koodia sisältää paljon sanan "AppleToolBox" mahdollisista muunnelmista. Entä jos haluaisimme vähentää sen hyväksymien muunnelmien määrää muuttamatta valikoimaamme?

Siellä "ei"-hahmo tulee sisään. Se näyttää tältä: ^. Jos sinulla on vaikeuksia löytää sitä näppäimistöltä (kuten minä tein), pidä siirtää ja paina 6 näppäintä näppäimistölläsi.

Käyttääksesi ^ merkin, aseta se poissuljettavan merkin alkuun.

On saalis! The ^ merkki ei toimi säännöllisen lausekkeen ulkopuolella. Et voi vain sijoittaa sitä A-kirjaimen eteen, jotta se jättää kirjaimen pois hausta. Regex-koodi ^A etsii vain isoa "A".

Yhdistä sen sijaan hakasulkeisiin ja muihin regex-erikoismerkkeihin.

Jos esimerkiksi haluaisin etsiä mitä tahansa sanan "Hyvä on" esiintymää, joka ei ala kirjaimella "A", käyttäisin koodia [^A]Hyvä on.

Voit jopa yhdistää sen sarjaan! Laita se vain hakasulkeesi alkuun, ja kaikki kyseisessä hakasessa oleva alue, mukaan lukien alueet, suljetaan pois hausta. Niin kuin:

Entä jos haluat jättää tietyn sanan pois hausta?

Minun oli vaikea löytää tätä tietoa. Stack Overflow -käyttäjällä oli kuitenkin ratkaisu, ja se näyttää tältä:

^(?!(sana)$).+$

Vaihda vain sana millä tahansa sanalla, jonka haluat jättää haun ulkopuolelle. Niin kuin:

Voit lukea tuon Stack Overflow -viestin tässä jos haluat lisätietoja tästä käyttötapauksesta.

Jokerimerkit voivat tarjota sinulle enemmän hakuvaihtoehtoja

Tämä vie meidät jokerimerkkiin. Jokerimerkki, joka on piste ., käytetään edustamaan mitä tahansa yksittäistä merkkiä, ei mitään. Jos vain kirjoitat . säännöllisen lausekkeen koodina pikanäppäimillä, se palauttaa jokaisen yksittäisen merkin tekstissä yksittäisenä vastaavuutena.

En tietenkään suosittele käyttämään sitä tähän tarkoitukseen! Sen sijaan suosittelen sen käyttöä yhden merkin sijasta sanassa. Esimerkiksi, Okei vastaa "Alright", "Alrxght", "Alr

Ja siinä se on pitkälti! Jokerimerkki on melko helppo ymmärtää. Se sopii kaikkeen! Tämä tekee siitä hyödyllistä löytää merkkijonoja, jotka vastaavat tiettyä muotoa ja joilla on ainutlaatuisia merkkejä.

Esimerkiksi sähköpostit näyttävät kaikki melko samanlaisilta olematta samanlaisia. Jokerimerkki voi auttaa yhdistämään elementtejä, joiden tiedät olevan siellä (kuten ".com" ja "@") merkkeihin, joita et tunne (kuten "my_email567", iCloud tai "Gmail").

Toinen mielenkiintoinen käyttötapaus on käyttää . merkkiä löytääksesi tietynpituiset merkkijonot.

Esimerkiksi, jos haluan löytää jokaisen neljän merkin merkkijonon tekstistä, voisin käyttää sitä ... jossa on tilaa molemmilla puolilla.

Ja tässä ovat kaikki seitsemän merkin pituiset merkkijonot samassa tekstissä:

Huomaa, että tämä ei ole täydellinen menetelmä tietynpituisten merkkijonojen löytämiseen. Kuten yllä olevista esimerkeistä näet, jotkin merkkijonot yhdistetään, joita ei pitäisi olla, ja jotkut, joiden pitäisi olla, olisi jätetty huomiotta. On vain mielenkiintoista muistaa, että voit käyttää . merkkiä merkkien laskemiseen.

Muista myös, että . on erikoismerkki regexissä. Tämä tarkoittaa, että sinun on lisättävä a \ sen edessä, jos haluat etsiä kausia. Tämä tarkoittaa, että sinun on käytettävä Hyvä on\. vastaamaan "Selvä".

Käytä kvantareita määrittääksesi etsimäsi tekstin pituuden

Selvä, joten voit käyttää teknisesti . merkki löytääksesi merkkijonon, joka sisältää tietyn määrän merkkejä. Useimmiten haluat kuitenkin olla tarkempi.

Siinä kvantisoijat tulevat mukaan. Määrittäjien avulla voit määrittää etsimäsi merkkijonon pituuden, kun käytät säännöllistä lauseketta pikakuvakkeiden kanssa.

Oletetaan esimerkiksi, että haluat löytää minkä tahansa sanan, joka on erityisesti kolme kirjainta pitkä. Voit määrittää tämän käyttämällä näitä sulkuja:

{}

Kun asetat nämä kiinnikkeet näiden jälkeen [] suluissa, määrität, että haluat merkkijonon, joka vastaa tämän sisällä olevien merkkien määrää {} ja tässä määritetty merkkialue [].

Olen varma, että siinä ei nyt ole paljon järkeä, joten katsotaanpa esimerkkiä!

Oletetaan, että haluat löytää tekstitekstissä mainitut vuodet. Koska vuosi koostuu neljästä numerosta (ei tietenkään joka vuosi kaikista ajoista, seuraa minua täällä), voit käyttää tätä koodia vastaamaan vuosia kyseisessä tekstissä:

[0-9]{4}

Tämä koodi sanoo, että haluamme merkkijonon, joka koostuu 0–9-merkeistä ja joka on nimenomaan neljä merkkiä pitkä. Voit nähdä, kuinka se paikantaa tämän merkkijonon seuraavassa kuvakaappauksessa:

Minun on huomattava, että tässä regex-koodissa on joitain ongelmia, ja se ei ota huomioon välilyöntejä tai välimerkkejä. Joten jos koodi löytää yli neljä merkkiä pitkän luvun, kuten "12345678", se löytää merkkijonon "1234" ja merkkijonon "5678".

Voit korjata tämän ongelman lisäämällä välilyönnin koodin alkuun ja hakasulkeen koodin jälkeen {4} joka sisältää toisen välilyönnin, pisteen, kysymysmerkin, pilkun ja huutomerkin. Tällä tavalla se jättää huomiotta pitkät numerot ilman, että niistä puuttuu numerojonoja, joiden lopussa on välimerkit välilyönnin sijaan.

Voit myös halutessasi määrittää useamman kuin yhden merkkijonon pituuden määrittäjien avulla. Esimerkiksi, ehkä haluan löytää merkkijonon neljä merkkiä, mutta myös seitsemän ja yksitoista merkkiä. Tältä se näyttäisi:

[a-z]{4,7,11}

Haluat tietää vielä muutamasta kvantitaattorista

Ok, kvantittoreita on vielä lisää! Nämä viimeiset kvantisaattorit ovat tarkoitettuja, kun haluat määrittää merkkijonon pituuden olematta liian tarkka.

Oletetaan esimerkiksi, että haluat löytää minkä tahansa pituisen merkkijonon, jota regex voi vastata. Kuin nimi! Nimet (länsimaissa) alkavat yhdellä isolla kirjaimella ja päättyvät satunnaiseen määrään pieniä kirjaimia, joita seuraa välilyönti. Löytääksesi nimen, kirjoitat seuraavan koodin:

[A-Z][a-z]*

[A-Z] määrittää, että merkkijonon ensimmäisen merkin tulee olla iso kirjain. [a-z]* määrittelee, että loppuosan merkkijonosta tulee koostua pienistä kirjaimista, mutta sillä ei ole väliä kuinka monta kirjainta seuraa. Ja välilyönti lopussa tarkoittaa, että se päättää ottelun, kun se löytää välilyönnin pienten kirjainten lopusta.

Kultainen yhdistelmä regexissä on .*. Tämä tarkoittaa, että vastaa mitä tahansa merkkiä loputtomasti. Toisin sanoen se vastaa koko tekstiä yhtenä kohteena.

Seuraava kvantori, joka sinun on tiedettävä, on +. Tämä on juuri sellainen * paitsi että se ei vastaa merkkijonoa, jossa on nolla merkkiä. * vastaa mitä tahansa merkkijonon pituutta, mukaan lukien merkkijonot, joilla ei ole pituutta. +, toisaalta tarvitsee merkkijonon, jossa on vähintään yksi merkki.

Lopuksi siellä on ? kvantori. Tämä on outo. Se määrittää, että merkkijonon pituus on joko nolla merkkiä tai yksi merkki. Siinä se - joko ei mitään tai vain yksi. Joten jos käytät koodia [a-z]? Kun alussa ja lopussa on välilyönti, se etsii yksittäisiä kirjaimia tekstissä.

Etsi merkkejä tekstijonon alusta ja lopusta

Olemme lähellä loppua oppaamme Regexin käyttämisestä pikakuvakkeiden kanssa! Pikakuvakkeiden kanssa käytät vain kahta muuta säännöllistä lauseketta.

Ensimmäiset ovat merkkejä, joiden avulla voit yhdistää merkkijonoja niiden alkamisen ja/tai loppumisen perusteella.

Kun se ei ole suluissa, ^ hahmon rooli muuttuu "sulkea pois" merkityksestä "alkaa". Se määrittää, että merkkijonon tulee alkaa millä tahansa haluat. Esimerkiksi jos kirjoitat ^A, joka vastaa kirjainta "A" merkkijonoissa "Hyvä on", "Apple" ja "A".

Se ei kuitenkaan vastaa koko sanaa. Sitä varten sinun on vaihdettava se muotoon ^A[A-Za-z]*. Se vastaa kappaleen/merkkijonon ensimmäistä sanaa, kunhan sana alkaa isolla A-kirjaimella.

Sivuhuomautuksena voit kirjoittaa [A-Za-z] kuten [A-z]. Se tarkoittaa samaa, huomaan vain, että ensimmäinen on hieman selkeämpi, kun opit.

Voit määrittää merkkijonon lopun käyttämällä $ merkki. Se toimii samalla tavalla kuin ^ merkki. Ainoa ero on se, että kirjoitat sen hakasulkeen/merkkijonon loppuun eikä alkuun.

Jos esimerkiksi haluat löytää merkkijonoja/kappaleita, jotka päättyvät "le", käytä koodia [A-z]*le$. Tämä vastaa sanaa "taulukko", "omena" ja "kyky" niin kauan kuin ne ovat merkkijonon tai kappaleen lopussa.

Regex jopa kieltää tämän osuman, jos merkkijonon lopussa on välilyönti tai välimerkki. "Pöytä." ei vastaa tätä koodia.

Voit korjata asian ottamalla huomioon välimerkit. Tämä koodi ottaa huomioon erilaisia ​​välimerkkejä ja välilyöntejä, joita voi esiintyä merkkijonon lopussa, mukaan lukien välimerkki ja välilyönti:

[A-z]*(le[\.\?!, ]?[ ]?)$

Tämä koodi vastaa "Able", "table", "stable" ja "capable? “.

Tallenna tekstimerkkijonoja käyttämällä säännöllisen lausekkeen ryhmittelytoimintoa pikanäppäimillä

Hyvä on! Olet päässyt AppleToolBox-oppaamme säännöllisen lausekkeen käyttämiseen pikakuvakkeiden kanssa loppuun. Jäljellä on enää yksi säännöllinen funktio opeteltavana, ja se on ryhmittely.

Ryhmittäminen on epäilemättä regexin tärkein ominaisuus, koska sen avulla voit tehdä asioita kirjoittamallasi regex-koodilla. Ilman sitä regex on vain hakuominaisuus. Se voi vain kertoa, onko merkkijono olemassa suuremmassa tekstissä, eli se palauttaa "true" tai "false".

Ryhmittelyn avulla voit kuitenkin tallentaa regex-koodisi tulokset. Tämä tarkoittaa, että voit kopioida osumia, tallentaa ne muuttujiin, korvata ne toisella tekstillä, muokata niiden muotoilua ja kaikkea muuta, mitä haluat tehdä säännöllisellä lausekkeella.

Onneksi ryhmittely on todella helppoa! Laita vain mitä haluat ryhmitellä sulkeisiin (). Kaikki mitä laitat sulkeisiin, käsitellään ryhmänä.

Jos laitat kokonaisen rivin regex-koodia sulkeiden sisään, esim (.*@.*\..{3}), silloin kyseinen ryhmä muistaa koodisi, mikä mahdollistaa sen palauttamisen myöhemmin.

On tärkeää, että käytät ryhmiä vain tarvittaessa. Koska ne on tallennettu muistiin, ne voivat heikentää koodisi suorituskykyä. Tallenna ryhmät tarvittaessa!

Voit käyttää ryhmiä myös järjestämiseen

Voit myös käyttää ryhmiä säännöllisen lausekkeen koodin järjestämiseen pikanäppäimillä. Kun teet tämän, sulkeissa olevaa ryhmää ei välttämättä muisteta.

Sano esimerkiksi, että haluan käyttää sanaa "Hei", paitsi että en välitä, mikä viimeinen kirjain on. Se voi olla mikä tahansa pieni tai iso kirjain tai jopa numero. “Hell3838djdjajaksks” ja “Hello” tulisi laskea osuviksi. Toisaalta "helvettiä" ei pitäisi laskea.

Jotta tämä toimisi, kirjoitan koodin Helvetti[A-z]|[0-9]+. Mutta tämä on tulos, jonka saan:

Syy, miksi se ei vastaa odotuksiani, on se + sovelletaan vain [0-9] Sulkumerkki. Minun on käytettävä sitä molemmissa suluissa.

Lisäksi tämä koodi sanoo, että haluan joko Helvetti[A-z]tai[0-9]. Joten se sopii sanoihin, jotka alkavat "helvetillä" ja päättyvät kirjaimeen, tai se etsii mitä tahansa numerojonoja. Tarvitsen itse asiassa sen, että se vastaa sanan "helvetti" esiintymiä, jotka päättyvät kirjaimeen tai numeroon.

Korjatakseni tämän voin käyttää ryhmää ja kirjoittaa koodin uudelleen muotoon Helvetti([A-z]|[0-9])+. Nyt se etsii sanaa "helvetti", jota seuraa mikä tahansa kirjain tai numero. Ja koska + käytetään molempiin hakasulkeisiin, se voi olla mikä tahansa kirjainten ja numeroiden yhdistelmä, kunhan siinä on vähintään yksi kirjain tai numero.

Kuten alla olevasta kuvakaappauksesta näet, tämä ryhmä ratkaisee ongelmani tallentamatta välttämättä tietoja kyseiseen ryhmään:

Mitä nyt?

Ja siinä se! Siinä on melkein kaikki mitä haluat tietää regexin käyttämisestä pikakuvakkeiden kanssa. Toivottavasti olet tarpeeksi itsevarma aloittaaksesi regex-kokeilun nyt, vaikka se ei aluksi tuntunut sinusta järkevältä.

Nyt kun tiedät regexin perusteet, olet valmis aloittamaan sen käytön pikakuvakkeissasi! Pikanäppäimet hyväksyy regex-syötteen seuraavissa toimissa:

  • Vastaa tekstiä
  • Korvaa teksti

Käyttämällä näitä kahta pikakuvaketoimintoa voit lisätä säännöllisen lausekkeen pikakuvakkeihisi.

Yhdistä tämä pikakuvakkeiden automaatioominaisuuksiin, ja käytössäsi on melko tehokas työkalu.

Voit käyttää regexiä helpottaaksesi tekstin muotoilua pikakuvakkeissa, hakeaksesi tietoja sähköposteista, teksteistä, verkkosivustoilta, tiedostot ja kalenteritapahtumat, luo tekstiä, joka noudattaa määritettyä muotoa, tarkista, että syöte on syötetty oikein, ja lisää.

Oletetaan esimerkiksi, että haluat yhdistää sähköpostit. Ehkä sinun on tarkistettava, että tekstimerkkijono on sähköposti, tai ehkä haluat poimia sähköpostin tekstikappaleesta.

Miten rikkoisit tämän?

Tiedäthän, että sähköpostin perusrakenne on kirjaimien, numeroiden ja merkkien yhdistelmä, jota seuraa @-symboli. jota seuraa verkkosivuston nimi, kuten Gmail tai iCloud, jota seuraa sitten ".com", ".org" tai jokin muu kolmimerkkinen ylätason nimi verkkotunnus.

Jos haluat kirjoittaa sen säännöllisellä lausekkeella, sinun on määritettävä, että haluat vähintään yhden merkin pituisen merkkijonon, jota seuraa välittömästi @-symbolilla, sitten toisella vähintään yhden merkin merkkijonolla, jota seuraa "." ja sen jälkeen kolmen merkin merkkijono hahmoja. Se näyttäisi tältä:

[sähköposti suojattu]+\..{3}

Jos liität tämän kohtaan Vastaa tekstiä tai Korvaa teksti Pikakuvakkeiden toiminnot, sinulla on automaatio, joka voi etsiä, tallentaa ja muokata sähköpostiosoitetta.

Voit käyttää tällaista ongelmanratkaisua keksiäksesi omia regex-ratkaisujasi tai löytääksesi sellaisia, joita muut ovat tehneet verkosta!

Aloita regexin käyttö pikanäppäimillä viedäksesi automaatiosi uudelle tasolle

Ja se, ystävät, todellakin on sitä. Toivottavasti nautit tämän artikkelin seuraamisesta! Tämä on yksi kunnianhimoisimmista teoksista, joita olen koskaan kirjoittanut AppleToolBoxille. Minun piti opettaa itselleni regex kirjoittaa se, ja toivon, että näin tehdessäni pystyin auttamaan sinua sen oppimisessa.

Regexin käyttäminen pikanäppäinten kanssa ei eroa siitä, miten oppii tekemään mitään muuta älypuhelimella tai tietokoneella. Käytä vain aikaa ja kärsivällisyyttä, niin lopulta pääset perille.

Jos haluat lisää oppaita, opetusohjelmia ja uutisia kaikesta Applesta, katso loput AppleToolBox-blogi.

Hyvä on [A-Z][a-z]+, Nähdään ensi kerralla!