Apmēram pēdējā mēneša laikā esmu aplūkojis lietotnes Shortcuts un Automator attiecīgi operētājsistēmās iOS un macOS. Abas ir spēcīgas, ja runa ir par automatizāciju Apple ekosistēmā, un, sākot ar MacOS Monterey šoruden, Shortcuts būs automatizācijas lietotne visās Apple ierīcēs. Tāpēc es gribēju pavadīt šo rakstu, apspriežot ļoti iedarbīgu tēmu: regulārā izteiksmes izmantošana ar lietotni Īsceļi.
Lai gan man ir zināma pieredze datorzinātnēs un programmēšanas jomā, es kaut kā nekad nebiju saskāries ar regulāro izteiksmi. Varbūt nosaukums mani nobiedēja, vai varbūt tas bija kods, kas ir viens no vismazāk lasāmajiem kodiem, ko jebkad esmu redzējis.
Neatkarīgi no gadījuma es nolēmu sīkāk izpētīt regulāro izteiksmi pēc tam, kad pēdējo dažu mēnešu laikā esmu izmantojis lietotni Shortcuts. Un es atklāju, ka daudzus ierobežojumus, ar kuriem biju saskārusies, izmantojot saīsnes, kā arī Automator, var pārvarēt, izmantojot regulāro izteiksmi.
Citiem vārdiem sakot, nebija runa par to, ka šīm lietotnēm trūka funkciju, bet gan par to, ka man trūka izglītības.
Tāpēc šodienas ierakstā jūs un es kopā apgūsim regulārās izteiksmes smalkumus. Tādā veidā jūs varat izmantot visas šīs lietotnes.
Mēs apskatīsim regulārās izteiksmes pamatus (sākot ar to, kas tas ir), to, ko ar to varat darīt, izmantojot lietotni Shortcuts, dažas vietnes un resursi, ko varat izmantot, ja pašam nevēlaties mācīties regulāro izteiksmi, un tad mēs iedziļināsimies regulārās izteiksmes pamatjēdzienos un mehānismos. valodu.
Labi, sāksim!
Saturs
-
Kas ir regulārās izteiksmes (t.i., regulārā izteiksme)?
- Lietas, ko varat darīt, izmantojot regulāro izteiksmi
- Kā jūs varat izmantot regulāro izteiksmi ar lietotni Shortcuts?
- Izmantojiet regex101.com, lai pārbaudītu regulārās izteiksmes
- Ja nevēlaties uzzināt, kā lietot regulāro izteiksmi ar lietotni Shortcuts, izlasiet šo
-
Regex iesācējiem: sāciet lietot regulāro izteiksmi ar saīsnēm
- Kas ir regex aromāti?
- Vietnes un atsauces, lai palīdzētu jums sākt apgūt regulāro izteiksmi, izmantojot saīsnes
- Kā veikt pamata teksta meklēšanu, izmantojot regulāro izteiksmi ar saīsnēm
- Mainīgu komponentu pievienošana regulārās izteiksmes meklēšanai
- Diapazons var paplašināt jūsu meklēšanu
- Kā izslēgt vārdus un rakstzīmes no regulārās izteiksmes meklēšanas, izmantojot saīsnes
- Aizstājējzīmes var sniegt vairāk meklēšanas iespēju
- Izmantojiet kvantatorus, lai norādītu meklējamā teksta garumu
- Ir vēl daži kvantori, par kuriem vēlaties uzzināt
- Meklējiet rakstzīmes teksta virknes sākumā un beigās
- Saglabājiet teksta virknes, izmantojot regulārā izteiksmes grupēšanas funkciju ar saīsnēm
-
Ko tagad?
- Kā jūs to izjauktu?
-
Sāciet lietot regulāro izteiksmi ar īsinājumtaustiņiem, lai paceltu automatizāciju uz nākamo līmeni
- Saistītās ziņas:
Kas ir regulārās izteiksmes (t.i., regulārā izteiksme)?
Regulāra izteiksme jeb “regulārais izteiksme” ir koda fragments, ko varat izmantot, lai meklētu teksta daļu lielākā teksta daļā.
Ja nezināt, teksta daļu citā teksta daļā programmēšanā sauc par “virkni”. Piemēram, vārds “zaļš” ir rakstzīmju virkne no teksta “Es šodien valkāju zaļas bikses”.
Citiem vārdiem sakot, regulārā izteiksme ir veids, kā atrast teksta virkni lielākā teksta daļā. Tā kā regex ir rakstīts kodā, varat to izmantot, lai veiktu dažas diezgan sarežģītas darbības.
Piemēram, ja vēlaties meklēt vārdu “e-pasts”, varat viegli uzrakstīt regulāro izteiksmes kodu, kas meklē e-pastu.
Tomēr, ja vēlaties atrast e-pasta ziņojumu, kas atrodas rindkopā, un precīzi nezināt, kas tas ir, jums būs jāmeklē teksta virkne, kas ir formatēta kā e-pasts. t.i., virkne, kas seko "[aizsargāts ar e-pastu]” formātā.
Tagad pieņemsim, ka vēlaties ne tikai atrast vienu e-pasta ziņojumu no rindkopas, bet katrs e-pasts. Varbūt vēlaties tos ātri kopēt kaut kur citur, atjaunināt uz jaunu formātu vai aizstāt tos tā, lai tie visi saka:[aizsargāts ar e-pastu]“.
Kļūstot arvien kvalificētākam un pieredzējušākam regulārā izteiksmē, jūs varēsit paveikt visas šīs darbības un vēl daudz ko citu.
Lietas, ko varat darīt, izmantojot regulāro izteiksmi
Labi, tāpēc, iespējams, manis tikko sniegtie e-pasta piemēri nav tik praktiski. Neuztraucieties — tas ir tālu no ierobežojuma, ko varat paveikt, izmantojot regulāro izteiksmi ar lietotni Shortcuts.
Vispārīgi runājot, viss, ko var veikt regulārā izteiksmē, ietilpst vienā no šīm četrām kategorijām:
- Atrodiet teksta virkni lielākā teksta daļā (t.i., meklējiet vārdu/virkni/virknes veidu teksta lapā).
- Pārbaudiet, vai teksta virkne atbilst jūsu vēlamajam formātam (t.i., pārbaudiet, vai teksta virkne ir pareizi rakstīta ar lielajiem burtiem/kārtota/pieturzīmes).
- Aizstāt vai ievietot tekstu noteiktā teksta daļas apgabalā.
- Sadaliet teksta virkni noteiktos punktos (piem., sadaliet teksta daļu katru reizi, kad tiek lietots komats).
Dziļuma līmenis, ko varat izmantot, lai mijiedarbotos ar katru no šiem funkciju veidiem, un veids, kā tās apvienot, padara regulāro izteiksmi par neticami spēcīgu rīku teksta parsēšanai un manipulēšanai.
Kā jūs varat izmantot regulāro izteiksmi ar lietotni Shortcuts?
Labi, tāpēc tagad jums, cerams, ir pamatideja par to, kam tiek izmantots regulārs izteiksmes veids. Tas ir sava veida kods, ko varat izmantot teksta meklēšanai, pat ja nezināt, kas tieši tas ir.
Tātad, kā tas jums palīdz saīsnēs? Līdzīgi kā skriptu pievienošana saīsnēm, tas ir veids, kā pāriet no pamata automatizācijas (Raksti man, kad atveras ārdurvis) uz papildu opcijām (Automātiski izveidot kalendāra notikumu manām sapulcēm ikreiz, kad saņemu e-pasta ziņojumu par Zoom sapulci no darba).
Varat izmantot regulāro izteiksmi kopā ar saīsnēm, lai pārbaudītu, vai ievade ir pareiza. Piemēram, ja izveidojat saīsni, kas darbojas tikai ar vietrāžiem URL, saīsnes sākumā varat izmantot regulāro izteiksmi, lai pārliecinātos, ka lietotājs palaiž automatizāciju uz URL.
Varat apvienot regulāro izteiksmi ar skriptēšanu, lai izveidotu jaudīgus saīsnes. Piemēram, šo saīsni izmanto regulāro izteiksmi un skriptus, lai pārvērstu svītrkodu par jūsu iecienītākā veikala URL.
Izmantojot lietotni Shortcuts operētājsistēmā Mac (2021. gada rudenī), varat izmantot regulāro izteiksmi, lai teksta daļā veiktu pakešu darbības. Piemēram, varat kopēt visus e-pasta ziņojumus teksta atlasē kā sakārtotu sarakstu. Vai arī varat aizstāt visus dokumentā esošos nosaukumus ar “*” rakstzīmēm, lai nodrošinātu privātumu.
Varat pat kopēt teksta pamattekstu no vienas lietotnes, pārformatēt to, lai tas atbilstu citas lietotnes preferencēm, un pēc tam ielīmēt to šajā citā lietotnē, veicot vienu peles labo pogu.
Citiem vārdiem sakot, regulārā izteiksme sniedz jums pilnīgu kontroli pār teksta apstrādi, izmantojot lietotni Shortcuts. Sākumā tas var nešķist īpaši noderīgi, taču tagad, kad zināt, ka tā pastāv, jūs noteikti sāksit pamanīt, cik daudz saīsņu var uzlabot ar šo funkciju. Jūs arī pamanīsit, ka daudzas saīsnes pat nav iespējamas bez regulārās izteiksmes.
Izmantojiet regex101.com, lai pārbaudītu regulārās izteiksmes
Kad sākat lietot regulāro izteiksmi ar saīsnēm, jūs saskarsities ar vilšanos:
Ir patiešām grūti pārbaudīt savu regulārā izteiksmes kodu. Un tas nav unikāls regulārajai izteiksmei. Jebkāda pārbaude, izmantojot lietotni Shortcuts, ir sāpīga. Vienīgais veids, kā to izdarīt, ir palaist saīsni. Šī metode nav slikta, ja jūs tikai testējat iebūvētās saīsnes funkcijas.
Taču koda testēšanai tas neļauj veikt pārbaudi pa rindiņām un nesniedz daudz atsauksmju.
Šim nolūkam es ieteiktu izmantot regex101.com. Tā ir vietne, kurā reāllaikā varat ierakstīt regulāro izteiksmes kodu. Varat arī ierakstīt tekstu teksta redaktorā tajā pašā tīmekļa lapā. Ievadot katru, jūs redzēsit, vai jūsu regulārais izteiksmes veids darbojas, kāpēc tas darbojas vai nedarbojas, un iegūsit informāciju par atrastajām atbilstībām.
Vietnē regex101.com tiek izmantots cits regex aromāts, nevis tas, ko atbalsta saīsnes (vairāk par to pēc minūtes), taču tas ir pietiekami tuvu, lai jums nevajadzētu sastapties ar pārāk daudzām problēmām.
Šī rīka izmantošana ir lieliska, jo vispirms varat tur ierakstīt savu regulāro izteiksmi un pēc tam kopēt to lietotnē Shortcuts, kad tas darbojas, kā paredzēts.
Ja nevēlaties uzzināt, kā lietot regulāro izteiksmi ar lietotni Shortcuts, izlasiet šo
Es saprotu — ne visi vēlēsies iemācīties lietot regulāro izteiksmi ar saīsnēm. Tā ir prasme, un tas nozīmē, ka tai būs nepieciešams laiks un prakse. Tas ne tuvu nav tik vienkārši kā pārējās lietotnes Īsceļi vilkšanas un nomešanas funkcijas.
Neuztraucies! Lai gan jūs nevarēsit iegūt tik daudz no lietotnes Shortcuts kā kāds, kurš veltīs laiku regulārās izteiksmes apguvei, jums joprojām ir pieejamas iespējas. Proti, tiešsaistē ir vietnes un lapas, kurās cilvēki ir izveidojuši regulārā izteiksmes koda kodu sarakstu, ko varat kopēt un ielīmēt lietotnē Shortcuts.
Šeit ir dažas saites, kuras varat pārbaudīt, ja nevēlaties apgūt regulāro izteiksmi:
- 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
Vienkārši izlasiet šīs saites, un jums vajadzētu būt iespējai atrast parastos regulāros izteiksmes risinājumus saīsnēm, kuras vēlaties izveidot. Tas nebūs bezizglītības risinājums, jo joprojām būs nepieciešams zināms laiks, lai uzzinātu par to, ko skatāties. Taču tas ir daudz vienkāršāks un ideāls risinājums tiem, kam nav laika izmantot regulāro izteiksmi.
Tomēr man jāatzīst, ka regulāro izteiksmi nav pārāk grūti apgūt, it īpaši, ja jums ir pieredze ar čaulas kodu vai iesācēju programmēšanu. Sākumā Regex man šķita kā muļķība, taču pēc stundu ilgas rakstu lasīšanas un spēlēšanās ar regex101.com es varēju sākt rakstīt regulāro izteiksmi saviem Shortcuts.
Tā ir tikai pazīstama lieta — pēc tam, kad to pietiekami ilgi skatīsities, tas pārstās izskatīties tik dīvaini. Tāpēc, ja jums ir laiks un jūs vienkārši esat iebiedēts, neesiet!
Regex iesācējiem: sāciet lietot regulāro izteiksmi ar saīsnēm
Labi, pietiek priekšvārda! Jums vajadzētu būt priekšstatam par to, kas ir regulārā izteiksme, ko tas var darīt, kāpēc tas būtu jāapgūst, un pietiekami daudz informācijas, lai izlemtu, vai vēlaties to apgūt. Tagad mēs ķersimies pie sīkumiem.
Zemāk ir daudz satura, taču neuztraucieties! Šis raksts drīzāk būs mācību ceļvedis. Es iesaku pārmeklēt katru sadaļu, lai iegūtu priekšstatu par mehāniku, ko izmanto regex. Tam vajadzētu arī palīdzēt jums aptīt to, ja joprojām esat neizpratnē par to, kas ir regex.
Kad esat izpētījis lietas, iesaku atvērt vietni regex101.com un spēlēt ar katru no rīkiem katrā sadaļā zemāk. Tas palīdzēs jums redzēt, kā šie jēdzieni izskatās praksē, kā arī uzlabos atmiņu. Kad esat to izdarījis, varat uzskatīt šo rakstu tikai par atskaites punktu — pie kā varat atgriezties, kad aizmirstat regulārās izteiksmes daļas.
Labi, ejam!
Kas ir regex aromāti?
Pirmkārt, mēs apskatīsim regulārās izteiksmes garšas. Neuztraucieties — tas neietekmēs jūsu ikdienas regulārās izteiksmes lietošanu ar saīsnēm. Tas ir tikai kaut kas, kas jāapzinās, pirms sākat darbu.
Ir dažādas regex versijas, kuras sauc par “garšvielām”. Šīs dažādās versijas joprojām ir ļoti līdzīgas. Ja jūs varat iemācīties lasīt un rakstīt vienu garšu, jums vajadzētu būt iespējai izlasīt jebkuru no tiem. Regulārā izteiksmes koda formatēšanā būs tikai nelielas atšķirības.
Programmēšanā šīs formatēšanas specifikas ir pazīstamas kā "sintaksi". Tas ir tikai veids, kā jums ir jāieraksta kods, lai šo kodu saprastu lietotne, kurā to rakstāt.
Lūk, kāpēc sintakse ir svarīga
"Čau draugs, kā paiet tava diena?"
", vai draugs iet? kā tava Hei diena
Abos teikumos ir vienādi vārdi, rakstzīmes un atstarpes. Tomēr tikai vienam ir jēga, un tas ir tāpēc, ka tas ievēro parasto sintakse.
Kodējot, viena programmēšanas valoda var saprast pirmo versiju, bet ne otro. Tomēr citai programmēšanas valodai otrajai varētu būt pilnīga jēga, savukārt pirmā izskatās pēc mēles. Tomēr kāds, kurš prot runāt angliski, jūs, iespējams, var saprast abu rindiņu nolūku, lai gan būs jāpiestrādā, lai saprastu nozīmi.
Tas ir (sava veida) tas, kādas ir regex dažādās garšas. Viņi visi izskatīsies nedaudz atšķirīgi un līdzīgi jums. Bet jums ir jāizmanto lietotajai lietotnei atbilstošā garša, pretējā gadījumā šai lietotnei nebūs ne jausmas, ko esat uzrakstījis.
Lietojumprogramma Shortcuts saprot regulārās izteiksmes ICU garšu, tāpēc vēlaties izmantot šo garšu. Vietnei regex101.com ir dažas dažādas garšas, kuras varat izvēlēties lapas kreisajā pusē. Tomēr tas izmanto PCRE, kas ir diezgan līdzīgs ICU.
Ir svarīgi zināt, ka pastāv dažādas regex garšas, jo tiešsaistē bez šaubām sastapsiet dažādas garšas. Ja atrodat mazliet regulāru izteiksmi, kuru vēlaties nozagt, bet nevarat to panākt, lai tas darbotos ar saīsnēm, vai tas vienkārši neizskatās pareizi, pārbaudiet, kādā garšā tas ir rakstīts!
Vietnes un atsauces, lai palīdzētu jums sākt apgūt regulāro izteiksmi, izmantojot saīsnes
Vēl viena lieta, ko vēlos apskatīt, pirms sākam izpētīt faktisko regulārā izteiksmes rakstīšanas mehāniku, ir resursi. Es nekādā gadījumā neapgalvoju, ka šī ziņa ir izsmeļošs resurss regulārās izteiksmes apguvei. Tas ir tikai paredzēts kā noderīgs sākumpunkts tiem, kuri vēlas izmantot regulāro izteiksmi ar saīsnēm.
Ja vēlaties iedziļināties regulārajā izteiksmē vai jūtat, ka šis raksts nesniedz jums nepieciešamo palīdzību, varat skatīt dažus no šiem rakstiem, ceļvežiem un rīkiem:
- https://regex101.com - Vietne, kas ļauj pārbaudīt savu regulārā izteiksmes kodu reāllaikā.
- https://www.shortcutfoo.com/app/dojos/regex/cheatsheet - Apkrāptu lapa, ja aizmirstat, ko katrs varonis dara
- http://www.rexegg.com – Šī vietne ir visaptverošs resurss, lai uzzinātu visu, kas jums jāzina par regulāro izteiksmi. Pārbaudiet šo, ja vēlaties apgūt regulāro izteiksmi.
- https://scottwillsey.com/blog/ios/regex1/ - Šī ir četru daļu emuāru sērija par regulārā izteiksmes izmantošanu ar saīsnēm. Es izmantoju ļoti atšķirīgu pieeju no šīs rokasgrāmatas, tāpēc tai vajadzētu izveidot jauku šī raksta pavadošo sēriju.
- Gan Stack Overflow, gan Reddit ir labas vietnes, lai kopīgotu savus regulārās izteiksmes jautājumus un sniegtu padomus un atbildes.
Šie resursi atšķiras no tiem, kas uzskaitīti Ja nevēlaties uzzināt, kā lietot regulāro izteiksmi ar lietotni Shortcuts sadaļu, jo tām visām būs jāsāk apgūt regulāro izteiksmi. Tie ir visaptverošāki, savukārt citi ir tikai atskaites punkti.
Kā veikt pamata teksta meklēšanu, izmantojot regulāro izteiksmi ar saīsnēm
Labi! Tagad esam nonākuši līdz punktam, ko visi ir gaidījuši: mēs apgūsim regulārās izteiksmes izmantošanas pamatus ar saīsnēm.
Sāksim ar pamata meklēšanu, jo tā ir vienkāršākā lieta, ko varat darīt, izmantojot regulāro izteiksmi. Kā minēts iepriekš, es iesaku atvērt regex101.com citā cilnē, lai jūs varētu sekot līdzi.
Visvienkāršākajā gadījumā regex meklēs (vai atbilst) neatkarīgi no tā, ko tajā ierakstāt. Piemēram, ja es rakstītu Labi
kā mans regulārā izteiksmes kods, tas atrastu katru vārda “Labi” gadījumu šajā rokasgrāmatā.
Lielajiem burtiem, atstarpēm un pieturzīmēm ir nozīme. Tas nozīmē, ka Labi
, labi
, Labi!
, un Labi ,
tie visi radīs dažādus rezultātus.
Un tas arī viss! Ikreiz, kad ierakstāt kaut ko regulārajā izteiksmē, neizmantojot īpašas rakstzīmes, regulārā izteiksme atbildīs visam, kas precīzi atbilst jūsu ievadītajam tekstam.
Ir viens loms! Dažas tastatūras rakstzīmes ir arī īpašas regulārās izteiksmes rakstzīmes. Tas nozīmē, ka tie veic noteikta veida funkciju regulārā izteiksmes kodā.
The ?
simbols ir viens no šādiem simboliem. Tas tiek izmantots regulārā izteiksmes kodā kā kvantētājs. Tātad, ja mēģināt meklēt “Labi?” ierakstot Labi?
kā savu regulāro izteiksmes kodu, jūs nesaņemsit to, ko vēlaties.
Lai to labotu, jums ir jānorāda, ka vēlaties izmantot “?” kā virkni, nevis kā īpašu rakstzīmi. Lai to izdarītu šim vai jebkuram citam varonim, vienkārši pievienojiet a \
simbolu tieši pirms rakstzīmes, kuras īpašās īpašības vēlaties anulēt.
Tātad, ja vēlaties meklēt “Labi?” Izmantojot regulāro izteiksmi, jūsu kods izskatīsies šādi:
Labi\?
Ja neesat pārliecināts, vai regulārajā izteiksmē noteikta rakstzīme tiek uzskatīta par īpašu rakstzīmi, varat pārbaudīt šī krāpšanās lapa visām regulārajā izteiksmē esošajām īpašajām rakstzīmēm.
Meklējiet vairāk nekā vienu vārdu, izmantojot rakstzīmi “vai”.
Vēl viens svarīgs komponents virkņu meklēšanā ar regulāro izteiksmi ir funkcijas “vai” izmantošana. Šī ir rakstzīme, kuru varat ievietot starp diviem vārdiem/rakstzīmēm, lai pateiktu: "Saskaņojiet šo vai šo".
Piemēram, ja es vēlos teksta daļā meklēt vārdus “labi” un “labi”, es izmantotu |
raksturs. Tā kā:
Labi|labi
Ja jums ir grūti atrast |
raksturs, turiet maiņa taustiņu uz leju un nospiediet \
taustiņu. Tas atrodas virs atgriezties taustiņu lielākajā daļā tastatūru.
Mainīgu komponentu pievienošana regulārās izteiksmes meklēšanai
Labi, tagad, kad zināt, kas ir neitrāls regulārs izteiksmes veids, ir pienācis laiks izvēlēties savu pirmo īpašo varoni. Tās būtu kvadrātiekavas, kas ir šīs lietas []
.
Neatkarīgi no tā, ko ievietojat šajās iekavās, tas tiks uzskatīts par regulārās izteiksmes meklēšanas mainīgo sastāvdaļu. Iekavās varat ievietot tik daudz rakstzīmju, cik vēlaties, taču katrai spēlei der tikai viena.
Labi, tas izklausās nedaudz sarežģīti, bet tā nav! Lūk, kā tas izskatās praksē:
-
[Labi
tikai atbilst vārdam “Labi”. Kaut kā bezjēdzīgi. -
[AB]labi
atbildīs gan “Labi”, gan “Blright”. -
Alr[iouxyz]ght
atbilst “Alright”, “Alroght”, “Alrught”, “Alrxght” un tā tālāk.
Varat kombinēt rakstzīmes iekavās, kā arī izmantot vairākas iekavas vienā regulārā izteiksmes rindā. [AB]r[i1]gh[tuvwxyz]
ir derīgs regulārā izteiksmes elements. Tomēr cerams, ka tas neizskatās tik haotiski, kā tas varētu būt pirms dažām minūtēm!
Diapazons var paplašināt jūsu meklēšanu
Nākamais regulārās izteiksmes fragments, kas noderēs ar saīsnēm, ir diapazons. Diapazoni ļauj norādīt rakstzīmju diapazonu, ko pieņemsit.
Iepriekšējā sadaļā jūs, iespējams, pamanījāt, ka manās iekavās bija daudz secīgu burtu. Garākais bija [tuvwxyz]
. Šie burti tiek parādīti alfabētā tādā pašā secībā, blakus viens otram.
Tas nozīmē, ka es varētu izmantot diapazonu, nevis tos rakstīt. Tas izskatītos šādi:
Labi [t-z]
Šis regulārā izteiksmes koda fragments darbosies tāpat kā Labi[tuvwxyz]
. Tas ir vienkārši glītāks un vieglāk rakstīt.
Jūs varētu aizstāt to pašu diapazonu ar [a-z]
ja vēlaties, lai tas pieņemtu jebkuru mazo burtu no alfabēta. Vai arī jūs varētu izmantot [0-9]
ja vēlaties pieņemt jebkuru viencipara skaitli.
Varat arī apvienot diapazonus vienā un tajā pašā diapazonā. Piemēram, šis Alr[i-ux-z]ght
pieņems “Labi”, “Alroght”, “Alrxght” un “Alryght”, bet nepieņems “Alraght” vai “Alrvght”.
Starp citu, ir arī citi vārda “Labi” varianti, kurus šis kods pieņems, un daudzi citi varianti, kurus tas nepieņems. Tā ir tikai īsa izvēle, lai lietas būtu īsas.
Ja jums ir grūti saprast, ko [i-ux-z]
nozīmē, ka tas varētu palīdzēt redzēt, ka tas ir rakstīts šādi:
[i-u, x-z]
Tā nav pareiza regulārās izteiksmes sintakse — diapazonu atdalīšanai nevajadzētu izmantot komatu. Bet, cerams, tas palīdz padarīt to saprātīgāku!
Lai atdalītu diapazonus, regulārajā izteiksmē nav jāliek komats, un diapazoni nav jāliek blakus viens otram. Jūs varētu to mainīt uz [i-uabcx-z]
. Tas pieņemtu tos pašus diapazonus kā iepriekš, kā arī rakstzīmes “a”, “b” un “c”.
Kā izslēgt vārdus un rakstzīmes no regulārās izteiksmes meklēšanas, izmantojot saīsnes
Labi, tagad mēs kaut kur nonākam! Ja esat ievērojis šo rakstu līdz šim brīdim, jums vajadzētu būt iespējai apskatīt tālāk norādīto kodu un saprast, kam tas atbilst:
Ap[p-r]le[Tt]ool[BbLF]ox
Ja varat to izlasīt, tad zināt, ka regulārā izteiksmes kods ietver daudz vārda “AppleToolBox” iespējamām variācijām. Tātad, ko darīt, ja mēs vēlamies samazināt pieņemamo variantu skaitu, nemainot mūsu diapazonu?
Šeit parādās "ne" varonis. Tas izskatās šādi: ^
. Ja jums ir grūti to atrast uz tastatūras (kā man), turiet maiņa un nospiediet 6 taustiņu uz tastatūras.
Lai izmantotu ^
rakstzīmi, novietojiet to tās rakstzīmes sākumā, kuru vēlaties izslēgt.
Ir āķis! The ^
rakstzīme nedarbojas ārpus regulārās izteiksmes funkcijas. Jūs nevarat to vienkārši novietot burta “A” priekšā, lai tas izslēgtu šo burtu no meklēšanas. Regex kods ^A
meklēs tikai lielo burtu “A”.
Tā vietā apvienojiet to ar iekavām un citām regulārās izteiksmes īpašajām rakstzīmēm.
Piemēram, ja es vēlētos meklēt jebkuru vārda “labi” gadījumu, kas nesākas ar burtu “A”, es izmantotu kodu. [^A]Labi
.
Jūs pat varat to apvienot ar diapazoniem! Vienkārši ievietojiet to iekavas sākumā, un viss, kas atrodas šajā iekavā, ieskaitot diapazonus, tiks izslēgts no jūsu meklēšanas. Tā kā:
Ko darīt, ja vēlaties izslēgt konkrētu vārdu no meklēšanas?
Man bija grūti atrast šo informāciju. Tomēr Stack Overflow lietotājam bija risinājums, un tas izskatās šādi:
^(?!(vārds)$).+$
Vienkārši nomainiet vārdu
ar jebkuru vārdu, kuru vēlaties izslēgt no meklēšanas. Tā kā:
Varat izlasīt šo Stack Overflow ziņu šeit ja vēlaties uzzināt vairāk par šo konkrēto lietošanas gadījumu.
Aizstājējzīmes var sniegt vairāk meklēšanas iespēju
Tas mūs noved pie aizstājējzīmēm. Aizstājējzīme, kas ir punkts .
, tiek izmantots, lai attēlotu jebkuru atsevišķu rakstzīmi, bet nav nevienas. Ja jūs vienkārši ierakstāt .
kā regulārās izteiksmes kods ar īsinājumtaustiņiem, tas atgriezīs katru rakstzīmi teksta pamattekstā kā atsevišķu atbilstību.
Protams, es neieteiktu to izmantot šim nolūkam! Tā vietā iesaku to lietot vienas rakstzīmes vietā vārdā. Piemēram, Labi
atbilst “Labi”, “Alrxght”, “Alr
Un tas ir gandrīz viss! Aizstājējzīmi ir diezgan viegli saprast. Tas atbilst visam! Tas ir noderīgi, lai atrastu virknes, kas atbilst noteiktam formātam, vienlaikus izmantojot unikālas rakstzīmes.
Piemēram, visi e-pasta ziņojumi izskatīsies diezgan līdzīgi, taču tie nebūs vienādi. Aizstājējzīme var palīdzēt apvienot elementus, par kuriem jūs zināt, ka tie būs (piemēram, “.com” un “@”) ar rakstzīmēm, kuras nepazīstat (piemēram, “my_email567”, iCloud vai “Gmail”).
Vēl viens interesants lietošanas gadījums ir izmantošana .
rakstzīmi, lai atrastu noteikta garuma virknes.
Piemēram, ja es vēlos atrast katru četru rakstzīmju virkni teksta pamattekstā, es varētu izmantot ...
ar atstarpi abās pusēs.
Un šeit ir visas septiņu rakstzīmju virknes tajā pašā tekstā:
Ņemiet vērā, ka šī nav ideāla metode noteikta garuma virkņu atrašanai. Kā redzat iepriekš minētajos piemēros, dažas virknes ir saskaņotas, kurām nevajadzētu būt, un dažas, kurām vajadzētu būt, tika ignorētas. Ir vienkārši interesanti atcerēties, ka varat izmantot .
rakstzīme, lai saskaitītu rakstzīmes.
Tāpat paturiet prātā, ka .
ir īpaša rakstzīme regulārajā izteiksmē. Tas nozīmē, ka jums būs jāpievieno a \
tā priekšā, ja vēlaties meklēt periodus. Tas nozīmē, ka jums tas ir jāizmanto Labi\.
lai atbilstu “Labi”.
Izmantojiet kvantatorus, lai norādītu meklējamā teksta garumu
Labi, lai jūs varētu tehniski izmantot .
rakstzīmi, lai atrastu virkni, kas aizņem noteiktu rakstzīmju skaitu. Tomēr lielāko daļu laika jūs vēlaties būt precīzāks.
Šeit tiek izmantoti kvantori. Kvantori ļauj norādīt virknes garumu, ko meklējat, izmantojot regulāro izteiksmi ar saīsnēm.
Piemēram, pieņemsim, ka vēlaties atrast vārdu, kas ir īpaši trīs burtus garš. Lai to norādītu, vēlēsities izmantot šīs iekavas:
{}
Kad jūs ievietojat šīs iekavas pēc šīm []
iekavās, jūs norādāt, ka vēlaties virkni, kas atbilst tajā esošo rakstzīmju skaitam {}
un šajā norādīto rakstzīmju diapazonu []
.
Esmu pārliecināts, ka tagad tam nav lielas jēgas, tāpēc apskatīsim piemēru!
Pieņemsim, ka vēlaties atrast tekstā minētos gadus. Tā kā gads sastāv no četriem cipariem (acīmredzot ne katru gadu no visiem laikiem, vienkārši sekojiet man šeit), varat izmantot šo kodu, lai šajā tekstā atbilstu gadiem:
[0-9]{4}
Šis kods saka, ka mēs vēlamies virkni, kas sastāv no rakstzīmēm no 0 līdz 9, kas ir īpaši četras rakstzīmes gara. Šajā ekrānuzņēmumā varat redzēt, kā tā atrod šo konkrēto virkni:
Jāatzīmē, ka ar šo regulārā izteiksmes kodu ir dažas problēmas, un tas nozīmē, ka tajā nav ņemtas vērā atstarpes vai pieturzīmes. Tātad, ja kods atrod skaitli, kas garāks par četrām rakstzīmēm, piemēram, “12345678”, tas atradīs virkni “1234” un virkni “5678”.
Lai atrisinātu šo problēmu, koda sākumā vēlaties pievienot atstarpi un aiz {4}
kurā ir cita atstarpe, punkts, jautājuma zīme, komats un izsaukuma zīme. Tādā veidā tas nepamanīs garas skaitļu virknes, neizlaižot skaitļu virknes, kuru galā ir pieturzīmes, nevis atstarpes.
Varat arī izmantot kvantorus, lai norādītu vairāk nekā vienu virknes garumu. Piemēram, varbūt es vēlos atrast virkni, kuras garums ir četras rakstzīmes, bet arī septiņas un vienpadsmit. Lūk, kā tas izskatītos:
[a-z]{4,7,11}
Ir vēl daži kvantori, par kuriem vēlaties uzzināt
Labi, joprojām ir vairāk kvantoru! Šie pēdējie kvantori ir paredzēti gadījumiem, kad vēlaties norādīt virknes garumu, nebūdams pārāk specifisks.
Piemēram, pieņemsim, ka vēlaties atrast jebkura garuma virkni, kurai var atbilst regulārais izteiksmes veids. Kā vārds! Vārdi (Rietumu valstīs) sākas ar vienu lielo burtu un beidzas ar nejauši izvēlētiem mazajiem burtiem, kam seko atstarpe. Lai atrastu vārdu, jums jāievada šāds kods:
[A-Z][a-z]*
[A-Z]
norāda, ka virknes pirmajai rakstzīmei ir jābūt lielajam burtam. [a-z]*
norāda, ka pārējā virknes daļa ir jāsastāv no mazajiem burtiem, taču nav nozīmes tam, cik burti seko. Un atstarpe beigās nozīmē, ka tā beigs spēli, tiklīdz mazo burtu beigās atradīs atstarpi.
Zelta kombinācija regulārajā izteiksmē ir .*
. Tas nozīmē, ka bezgalīgi atbilst jebkuram rakstzīmei. Citiem vārdiem sakot, tas sakritīs ar visu teksta daļu kā vienu vienumu.
Nākamais kvantētājs, kas jums jāzina +
. Šis ir gluži kā *
izņemot to, ka tā neatbilst virknei ar nulli rakstzīmēm. *
atbilst jebkuram virknes garumam, ieskaitot virknes, kurām nav garuma. +
no otras puses, ir nepieciešama virkne ar vismaz vienu vai vairākām rakstzīmēm.
Visbeidzot, ir ?
kvantators. Tas ir dīvains. Tas norāda, ka virknei ir nulle rakstzīmes vai viena rakstzīme. Tas arī viss - vai nu nekas, vai tikai viens. Tātad, ja izmantojat kodu [a-z]?
ar atstarpi sākumā un beigās, tas meklēs atsevišķus burtus teksta pamattekstā.
Meklējiet rakstzīmes teksta virknes sākumā un beigās
Mēs tuvojas beigām mūsu rokasgrāmatas par regulārās izteiksmes izmantošanu ar saīsnēm! Ir tikai vēl divi regulārā izteiksmes koda veidi, kurus izmantosit kopā ar saīsnēm.
Pirmās ir rakstzīmes, kas ļauj saskaņot virknes atkarībā no tā, kā tās sākas un/vai beidzas.
Ja tas nav iekavās, ^
varoņa loma mainās no nozīmes “izslēgt” uz “sākas ar”. Tas norāda, ka virknei jāsākas ar visu, ko vēlaties. Piemēram, ja jūs rakstāt ^A
, kas atbilstu burtam “A” virknē “Labi”, “Apple” un “A”.
Tomēr tas neatbilst visam vārdam. Lai to izdarītu, jums tas būs jāmaina uz ^A[A-Za-z]*
. Tas atbildīs rindkopas/virknes pirmajam vārdam, ja vien šis vārds sākas ar lielo burtu “A”.
Kā sānu piezīmi, jūs varat rakstīt [A-Za-z]
kā [A-z]
. Tas nozīmē to pašu, tikai es uzskatu, ka pirmais ir mazliet skaidrāks, kad mācāties.
Lai norādītu virknes beigas, vēlēsities izmantot $
raksturs. Tas darbojas tāpat kā ^
raksturs. Vienīgā atšķirība ir tā, ka jūs to rakstāt iekavas/virknes beigās, nevis sākumā.
Piemēram, ja vēlaties atrast virknes/rindkopas, kas beidzas ar “le”, izmantojiet kodu [A-z]*le$
. Tas atbildīs “Tabula”, “Ābols” un “Capable”, ja vien tie atrodas virknes vai rindkopas beigās.
Regex pat noliegs šo atbilstību, ja virknes beigās ir atstarpe vai pieturzīme. "Tabula." šis kods netiks saskaņots.
Lai to labotu, varat izmantot pieturzīmes. Šis kods ņem vērā dažādus pieturzīmju un atstarpju veidus, kas var būt virknes beigās, tostarp pieturzīmes, kam seko atstarpe:
[A-z]*(le[\.\?!, ]?[ ]?)$
Šis kods atbildīs “Able”, “table”, “stable” un “capable? “.
Saglabājiet teksta virknes, izmantojot regulārā izteiksmes grupēšanas funkciju ar saīsnēm
Labi! Jūs esat sasniedzis mūsu AppleToolBox rokasgrāmatas par regulārās izteiksmes izmantošanu ar saīsnēm beigām. Vēl tikai viena regulārā izteiksmes funkcija, kas jāapgūst, un tā ir grupēšana.
Grupēšana neapšaubāmi ir vissvarīgākā regulārā izteiksmes funkcija, jo tā ļauj jums veikt darbības ar rakstīto regulārā izteiksmes kodu. Bez tā regulārā izteiksme ir tikai meklēšanas funkcija. Tas var tikai pateikt, vai virkne pastāv lielākā teksta daļā, t.i., tā atgriezīs “true” vai “false”.
Tomēr, izmantojot grupēšanu, varat saglabāt regulārā izteiksmes koda rezultātus. Un tas nozīmē, ka varat kopēt atbilstības, saglabāt tās mainīgajos, aizstāt tos ar citu tekstu, mainīt to formatējumu un visu pārējo, ko vēlaties darīt ar regulāro izteiksmi.
Par laimi, grupēšana ir ļoti vienkārša! Vienkārši ievietojiet iekavās visu, ko vēlaties grupēt ()
. Viss, ko ievietosit iekavās, tiks uzskatīts par grupu.
Ja iekavās ievietojat veselu regulārā izteiksmes koda rindiņu, piemēram (.*@.*\..{3})
, tad šī grupa tiks atcerēta ar jūsu kodu, kas ļaus to vēlāk atsaukt.
Ir svarīgi, lai jūs izmantotu grupas tikai tad, kad tas ir nepieciešams. Tā kā tie tiek saglabāti atmiņā, tie var izraisīt jūsu koda veiktspējas samazināšanos. Saglabājiet grupas, kad tās ir vajadzīgas!
Organizēšanai varat izmantot arī grupas
Varat arī izmantot grupas, lai sakārtotu regulārās izteiksmes kodu, izmantojot saīsnes. To darot, iekavās esošā grupa ne vienmēr tiks atcerēta.
Piemēram, sakiet, ka vēlos saskaņot vārdu “Sveiki”, izņemot to, ka man ir vienalga, kāds ir pēdējais burts. Tas var būt jebkurš mazais vai lielais burts vai pat cipars. “Hell3838djdjajaksks” un “Hello” jāskaita kā sakritības. No otras puses, “elle” nevajadzētu skaitīt.
Lai tas darbotos, es uzrakstu kodu Elle[A-z]|[0-9]+
. Bet šāds rezultāts man ir:
Iemesls, kāpēc tas neatbilst tam, kā es gaidīju, ir tas +
tiek piemērots tikai [0-9]
kronšteins. Man tas ir jāattiecina uz abām iekavām.
Turklāt šis kods saka, ka es gribu vai nu elle[A-z]
vai[0-9]
. Tātad tas atbilst vārdiem, kas sākas ar “elle” un beidzas ar burtu, vai arī meklē ciparu virknes. Man patiesībā ir nepieciešams, lai tas atbilstu vārda “elle” gadījumiem, kas beidzas ar burtu vai ciparu.
Lai to labotu, varu izmantot grupu un pārrakstīt kodu kā Elle([A-z]|[0-9])+
. Tagad tas meklē vārdu “elle”, kam seko jebkurš burts vai cipars. Un tāpēc, ka +
tiek lietots abām iekavām, tā var būt jebkura burtu un ciparu kombinācija, ja vien ir vismaz viens burts vai cipars.
Kā redzat zemāk esošajā ekrānuzņēmumā, šī grupa atrisina manu problēmu, ne vienmēr saglabājot informāciju šajā grupā:
Ko tagad?
Un tas arī viss! Tas ir gandrīz viss, ko jūs varētu vēlēties uzzināt par regulārā izteiksmes izmantošanu ar saīsnēm. Cerams, ka jūtaties pietiekami pārliecināts, lai tagad sāktu eksperimentēt ar regulāro izteiksmi, pat ja sākumā tas jums nebija jēgas.
Tagad, kad zināt regulārās izteiksmes pamatus, esat gatavs sākt to izmantot savos saīsnēs! Īsceļi pieņem regulāras izteiksmes ievadi šādās darbībās:
- Saskaņot tekstu
- Aizstāt tekstu
Izmantojot šīs divas īsinājumtaustiņu darbības, varat ievietot regulāro izteiksmi savos saīsnēs.
Savienojiet to ar saīsnes automatizācijas iespējām, un jūsu rīcībā ir diezgan spēcīgs rīks.
Varat izmantot regulāro izteiksmi, lai atvieglotu teksta formatēšanu saīsnēs, lai iegūtu informāciju no e-pastiem, tekstiem, vietnēm, failus un kalendāra notikumus, izveidojiet tekstu, kas atbilst noteiktam formātam, pārbaudiet, vai ievade ir ievadīta pareizi, un vairāk.
Piemēram, pieņemsim, ka vēlaties e-pasta ziņojumus saskaņot. Varbūt jums ir jāpārbauda, vai teksta virkne ir e-pasta ziņojums, vai varbūt vēlaties izvilkt e-pasta ziņojumu(-s) no teksta pamatteksta.
Kā jūs to izjauktu?
Jūs zināt, ka e-pasta pamatstruktūra būs burtu, ciparu un rakstzīmju kombinācija, kam sekos simbols “@”, pēc tam kam seko vietnes nosaukums, piemēram, Gmail vai iCloud, kam pēc tam seko “.com”, “.org” vai kāda cita veida trīs rakstzīmju augstākā līmeņa nosaukums. domēns.
Lai to ierakstītu regulārajā izteiksmē, jums ir jānorāda, ka vēlaties nekavējoties sekot vismaz vienas rakstzīmes garai virknei ar simbolu “@”, pēc tam vēl vienu virkni ar vismaz vienu rakstzīmi, kam seko “.”, pēc tam seko trīs virkne rakstzīmes. Tas izskatītos šādi:
[aizsargāts ar e-pastu]+\..{3}
Ja ielīmējat šo mapē Saskaņot tekstu vai Aizstāt tekstu saīsnes, jums būs automatizācija, kas var atrast, saglabāt un manipulēt ar e-pasta adresi.
Varat izmantot šo problēmu risināšanas veidu, lai izstrādātu savus regulāros izteiksmes risinājumus vai atrastu dažus, ko citi ir izstrādājuši tiešsaistē!
Sāciet lietot regulāro izteiksmi ar īsinājumtaustiņiem, lai paceltu automatizāciju uz nākamo līmeni
Un tas, draugi, tiešām tā ir. Ceru, ka jums patika sekot šim rakstam! Šis ir viens no vērienīgākajiem darbiem, ko jebkad esmu rakstījis AppleToolBox. Man bija jāiemāca sev to rakstīt, un es ceru, ka, to darot, es varēju jums palīdzēt to apgūt.
Regulārās izteiksmes izmantošana ar saīsnēm neatšķiras no mācīšanās, kā viedtālrunī vai datorā veikt kaut ko citu. Vienkārši veltiet laiku un pacietību, un galu galā jūs tur tiksit.
Lai iegūtu vairāk ceļvežu, pamācību un jaunumus par visu Apple, skatiet pārējo AppleToolBox emuārs.
Labi [A-Z][a-z]+
, Tiekamies nākamreiz!