Umhlahlandlela ophelele wemithetho ye-Regex: ukuthi iyini, isebenza kanjani, nezibonelo ezingokoqobo

  • Imithetho ye-Regex ikuvumela ukuthi useshe, uqinisekise futhi uguqule umbhalo kahle.
  • I-syntax yayo isebenzisa izinhlamvu zangempela, ama-metacharacters, nama-quantifiers ukuchaza amaphethini anembile.
  • I-Regex ibalulekile ezinhlelweni, ukuphathwa kwesistimu, i-SEO, kanye nokuhlela idatha okuthuthukile.

Imithetho ye-Regex Isibonelo

Izinkulumo ezivamile, ezivame ukwaziwa nge-Regex, zimelela enye yezinsiza ezinamandla kakhulu neziguquguqukayo emhlabeni wentuthuko, ukuphathwa kwesistimu, nokucubungula imibhalo emikhulu. Kodwa-ke, kubasebenzisi abaningi nabahleli bezinhlelo abasondela kuyo okokuqala, i-syntax yayo ingaba yindida noma ibe namandla kakhulu. Imithetho ye-Regex yobungcweti namaphethini kuvumela ukusesha, ukuhlunga, ukuqinisekisa, nokuguqula umbhalo ngokusebenza kahle okungenakuqhathaniswa nokuvumelana nezimo.

Wake wazibuza ukuthi ungawathola kanjani amaphethini ayinkimbinkimbi ngaphakathi kwamadokhumenti, uqinisekise amafomu, uguqule idatha, noma wenze ngokuzenzakalela izinqubo zokusesha kumaphrojekthi akho e-IT? Kungakhathaliseki ukuthi ungunjiniyela, i-sysadmin, noma umsebenzisi onelukuluku lokwazi, lesi sihloko sesakho. Lungela umhlahlandlela ophelele, osebenzayo, futhi, ngaphezu kwakho konke, ocacile wemithetho ye-Regex kanye nokusetshenziswa kwayo kuzo zonke izinhlobo zezimo.

Iyini imithetho ye-Regex noma izinkulumo ezijwayelekile?

Izinkulumo ezijwayelekile (i-Regex, yesifinyezo sayo ngesiNgisi se Ukuveza Okuvamile) kuwukulandelana noma amaphethini abalingiswa akwazi ukuchaza imithetho yokuthola, ukuqinisa noma ukulungisa amathekisthi kwamanye amathekisthi. Cabanga ukuthi ufuna imishwana ethile, amafomethi athile (njengama-imeyili, izinsuku, izinombolo zocingo), amagama ahlangabezana nemibandela ethile, noma ufuna ukushintsha izingxenye zombhalo ngobuningi: kuzo zonke lezi zimo, I-regex iyithuluzi elifanele.

Umbono oyisisekelo uwukuthi Chaza, ngochungechunge lwezimpawu, izinhlamvu nama-opharetha akhethekile, iphethini umbhalo esifuna ukuwuthola, ukuwuqinisekisa noma ukuwulungisa kufanele uhlangabezane nawo.Isibonelo, uma ufuna ukuthola zonke izinombolo emshweni, ungachaza iphethini elula ethi “noma yiluphi uhlamvu lwezinombolo” (njenge \d). Uma ufuna okuthile okuthuthuke kakhulu, ungakha imithetho eyinkimbinkimbi njengokuthi: "zonke izintambo eziqala ngokuthi 'Kopisha' futhi zigcine ngenombolo."

I-Regex Syntax

Umlando nokuziphendukela kwe-Regex

Izinkulumo ezivamile zazalwa maphakathi nekhulu lama-20, emkhakheni we-logic ehlelekile kanye ne-automata theory. Ukusetshenziswa kwayo kokuqala okusebenzayo bekusezinhlelweni ezisekelwe ku-UNIX, ezinezinsiza ezifana ed, i-grep, sed y awu. Ngemva kwalokho, standard I-POSIX yandisa i-syntax yayo futhi yayifaka ezindaweni eziningi. Kamuva, ulimi I-Perl ithathe i-Regex yayisa ezingeni elisha, yengeza izici ezintsha futhi izenza zaziwe emphakathini wonjiniyela.

Okwamanje, I-regex yakhelwe ezilimini eziningi zokuhlela (i-JavaScript, i-Python, i-Java, i-C#, i-PHP, i-Ruby, njll.), kanye nabahleli bombhalo abathuthukisiwe, izinhlelo zokusebenza, izinhlaka zewebhu, nezinsiza eziningi zomugqa womyalo. Lokhu kwenza i-Regex ilawule ulimi olusetshenziswa umhlaba wonke ngempela ukuze kucutshungulwe umbhalo kunoma yimuphi umongo wekhompyutha.

Iyini imithetho ye-Regex?

I-Las Imithetho ye-regex Azisetshenziselwa ukusesha kuphela, ziphinde ziqinisekise, zikhiphe, ziguqule futhi zikuvumela ukuthi uhlunge noma uguqule imiqulu emikhulu yedatha ngemizuzwana nje.

  • Ukuthola amaphethini emibhalweni emikhulu: Thola ama-imeyili, ama-URL, amagama, izinombolo, izinsuku, nokuningi—ngisho nasemafayilini amakhulu noma kusizindalwazi—ngaphandle komzamo owenziwe mathupha.
  • Qinisekisa okokufaka komsebenzisi: Ihlola ukuthi ingabe igama eliyimfihlo liyahlangabezana yini nezimfuneko, inombolo yocingo, noma ikheli le-imeyili lilungile ngaphambi kokuligcina.
  • Lungisa futhi ufake umbhalo esikhundleni: Shintshanisa izingxenye ezithile zombhalo, kusukela ekukhipheni omaka be-HTML kuye ekwenzeni amafomethi edatha abejwayelekile.
  • Izinqubo ezizenzakalelayo: Hlunga izingodo, guqula izinhlu, hlaziya amafayela okungena, noma uqambe kabusha amafayela ngobuningi ngokuvumelana nemithetho enembayo.

I-Regex Basics: Imiqondo Eyisisekelo

Imithetho ye-Regex yenziwe ngenhlanganisela yezinhlamvu zangempela nama-metacharacter. Ukuqonda lezi zakhi kuyisisekelo sokwakha amaphethini awusizo.

1. Izinhlamvu ezingokoqobo

Uhlamvu lwangempela lumele ngqo uhlamvu ofuna ukumsesha. Ngokwesibonelo, inkulumo indlu izobeka ngqo lolo chungechunge, ngalolo hlelo, ngaphakathi kombhalo okuqondiwe.

2. Ama-Metacharacters: amandla e-Regex

Ama-Metacharacts ayizimpawu ezikhethekile ezinweba incazelo yezinkulumo ezivamile, zibanike ukuguquguquka namandla. Ezivame kakhulu zihlanganisa:

  • . Ichashazi limelela noma yimuphi uhlamvu ngaphandle kokuhlukana komugqa.
  • [] Abakaki bachaza izigaba noma amasethi ezinhlamvu ezivunyelwe.
  • ^ I-circumfix ingamaka noma isiqalo somugqa/igama, noma, uma ivalelwe kubakaki, ukunganaki kwesethi.
  • $ Uphawu lwedola lubonisa ukuphela komugqa noma umbhalo.
  • * Inkanyezi ikuvumela ukuthi useshe "iziro noma izimpinda eziningi" zesici sangaphambilini.
  • + Uphawu lokuhlanganisa lufuna "impinda eyodwa noma ngaphezulu."
  • ? Ibonisa ukuthi i-elementi yangaphambilini iyakhethwa (iqanda noma isikhathi esisodwa).
  • () Ihlanganisa izingxenye zeqembu zenkulumo ukuze kusetshenziswe izilinganiseli, kukhishwe amaqembu amancane, noma kuchazwe ezinye izindlela.
  • | Ibha eqondile imelela enye indlela enengqondo ethi "noma".
  • \ I-backslash ibalekela incazelo ekhethekile yohlamvu olulandelayo noma yethula ukulandelana okufushanisiwe (njengokuthi \d, \w, \s).

3. Ama-Quantifiers: ukulawula ukuphindaphinda

Ama-quantifiers akuvumela ukuthi uchaze ukuthi uhlamvu, isigaba noma iqembu kufanele liphindwe kangaki:

  • *: Uziro noma izimpinda eziningi.
  • +: Isikhathi esisodwa noma ngaphezulu.
  • ?: Kanye noma cha nhlobo (uma uthanda).
  • {n}: Impela n ukuphindaphinda.
  • {n,}: Okungenani n izikhathi (akukho esiphezulu).
  • {n,m}: Phakathi n y m ukuphindaphinda.

4. Izigaba zezinhlamvu nezifinyezo

Izigaba zezinhlamvu zisivumela ukuthi siqhubeke sinciphise esifuna ukukusesha:

  • [az]: noma yiluphi uhlamvu oluncane.
  • [AZ]: ufeleba.
  • [0-9]: noma iyiphi idijithi.
  • [abc]: uhlamvu a, b noma c.
  • [^xyz]: noma yimuphi uhlamvu ngaphandle x, ngi z.
  • \d: idijithi yedesimali (ilingana no-[0-9]).
  • \D: noma yimuphi umlingiswa lowo cha kube idijithi.
  • \w: uhlamvu lwegama (uhlamvu, inombolo, noma i-underscore; kulingana nokuthi [a-zA-Z0-9_]).
  • \W: noma yimuphi uhlamvu okungelona igama.
  • \s: isikhala esimhlophe (isikhala, ithebhu, ikhefu lomugqa).
  • \S: noma yimuphi umlingisi ngaphandle kwesikhala.

5. Amahange: ukubeka iphethini ngaphakathi kombhalo

Amahange akuvumela ukuthi ubeke amaphethini ekuqaleni noma ekugcineni komugqa, noma ekuqaleni/ekugcineni kwamagama.

  • ^: ukuqala komugqa noma umbhalo.
  • $: ukuphela komugqa noma umbhalo.
  • \b: umngcele wamagama (ukuqala noma ukuphela).
  • \B: iphoyinti lomngcele okungelona igama (ingaphakathi).

Izibonelo ezisebenzayo zemithetho ye-Regex

Manje ake sibheke ukuthi le mithetho isebenza kanjani ezimweni ezingokoqobo, ezilula nezithuthukile, ukuze ukwazi ukwenza lokho okufundile ngokushesha.

  • Qinisekisa ama-imeyili: ^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$
  • Thola izinombolo ze-DNI: \b\d{8}[- ]?[trwagmyfpdxbnjzsqvhlcke]?\b
  • Thola amakheli e-IP v4: ^(?:(?:25[0-5]|2[0-4]\d|1?\d?\d)(?:\.(?!$)|$)){4}$
  • Khipha ama-URL kumathegi e-HTML:
  • Thola imigqa enamazwana ku-Java: //[^\r\n]*[\r\n]

Ukuqonda okuthuthukile kanye nokwenza ngokwezifiso kwephethini

I-Regex ikuvumela ukuthi wakhe amaphethini ayinkimbinkimbi ngokuhlanganisa amaqembu, ukushintshana, izinkomba, nezilinganisi ezithuthukisiwe, okukuvumela ukuthi uhlunge, uqinisekise, noma uthole ulwazi oluqondile.

Amaqembu nezinhlangano

Ngokufaka ingxenye yephethini kubakaki, sakha iqembu. Lokhu kusivumela ukuthi sisebenzise ama-quantifiers kuwo wonke amaqembu, sikhiphe ulwazi, noma amaphethini angaphansi okuyinkomba.

Isibonelo, isisho ((ma)+b) izofanisa “mab” noma “mamab”, kodwa hhayi “maab”. Amaqembu angabhekiselwa kamuva kusetshenziswa \1, \2, njll., ilungele ukuthola amaphethini aphindaphindiwe afanayo.

Okunye (|): okunengqondo "noma" ku-Regex

Ibha eqondile | ikuvumela ukuthi uchaze ezinye izindlela: noma imaphi amaphethini ahlukaniswe yilolu phawu azosebenza. Isibonelo, (umfana|intombazane) uzofanisa womabili amagama.

Escape metacharacts nge \

Ukuhlehla \ Kubalulekile ukunciphisa incazelo ekhethekile ye-metacharacter noma ukwethula ukulandelana okufushanisiwe. Ngokwesibonelo, "\." usesha isikhathi esiqondile, “\?” kuphawu lombuzo, “\\” ku-backslash uqobo, njll.

Abakwa-quantifiers abahahayo nabavilaphayo

Ngokuzenzakalelayo, ama-quantifiers e-Regex anomhobholo: athatha umbhalo omningi ngangokunokwenzeka. Ukungeza ? Iguqulwa ibe "evilaphayo", ebamba ubuncane obudingekayo.

Isibonelo: inja izothola iyunithi yezinhlamvu ende phakathi kuka-“perr” kanye no-“o”, ngenkathi inja izothwebula ubuncane.

Iziqinisekiso kanye nokubheka

Ukugomela kokubheka phambili nokubheka ngemuva kukuvumela ukuthi uqinisekise imibandela "ngaphambi" noma "ngemuva" kokufana ngaphandle kokusebenzisa izinhlamvu embhalweni.

  • Ukubukeka okuhle: (?=iphethini) Hlola ukuthi "iphethini" itholakala ngemva kwendawo yamanje.
  • Ukubukeka okungalungile: (?!iphethini) Hlola ukuthi “iphethini” AYIKHO ngezansi.
  • Ukubukeka okuhle/okubi ngemuva: (?<=iphethini) y (? Benza into efanayo "emuva."

Izicelo ezisebenzayo ze-Regex emhlabeni wangempela

I-Regex isetshenziswa emikhakheni ehlukahlukene kanye nemisebenzi yansuku zonke:

  • Ukuqinisekiswa kwefomu: ama-imeyili, izinombolo zocingo, amagama, amaphasiwedi aqinile.
  • Ukucubungula ilogu nokuhlolwa kwesistimu: Isesha amaphethini kumafayela okungena, ukukhipha amaphutha nezixwayiso.
  • Ukuphathwa kwe-SEO kanye ne-URL: I-URL ibhala kabusha ku-.htaccess, izihlungi zepharamitha, ukuhlukaniswa kwesesho.
  • Ukuhlelwa kombhalo ngobuningi: Hlanza omaka be-HTML, susa izikhala ezingafuneki, yenza idatha kuma-spreadsheet ibe evamile, shintsha ikhodi yefa.
  • Ukuthuthukiswa kwewebhu kanye ne-automation: ukuhlola okuzenzakalelayo, ukumiswa komthetho weseva, ukuthuthukiswa kwe-scraper.

Ukunambitheka okuhlukile kwe-Regex nezinjini

Akuwona wonke ukuqaliswa kwe-Regex okusekela amandla afanayo; kukhona "ama-flavour" ahlukene kuye ngolimi, ithuluzi, noma injini esetshenzisiwe.

  • I-POSIX: I-syntax yokuqala esekelwe ku-UNIX. Ibanzi kancane kune-Perl noma i-PCRE.
  • I-Perl/PCRE: Iphelele kakhulu, isekela ukubuka, izinkomba ezithuthukile, ama-modifiers nama-subroutines.
  • IJavaScript: Isetshenziswa kakhulu kuwebhu, iyahambisana nama-opharetha amaningi, kodwa kunemikhawulo ekubhekeni ngemuva (ngaphandle kwezinguqulo zesimanje).
  • .NET nezinye izilimi: Ngokuvamile zihambisana ne-PCRE, kodwa kuhlale kuhle ukuthi ubheke imibhalo yolimi uqobo.

Ngakho-ke, noma nini lapho uzosebenza kumongo othize, hlola ukuthi yikuphi ukusekelwa ne-syntax eyamukelwa yi-Regex kulelo thuluzi noma ulimi.

Ungawahlola kanjani futhi wakhe amaphethini akho e-Regex

Indlela engcono kakhulu yokufunda i-Regex ukuzijayeza ngezibonelo futhi usebenzise amathuluzi okuhlola abukhoma atholakala kuwebhu.

  • regex101.com: ikuvumela ukuthi ubhale amaphethini, uhlole imiphumela, ubuke izincazelo kanye nezibalo zokusebenza.
  • regexr.com: : izinketho ezinhle zesinyathelo nesinyathelo, izithombe ezibonakalayo, nezibonelo ezisebenzisanayo.
  • Izichazi ezibonakalayo kanye namakhodi generator: ilungele ukuqonda amaphethini ayinkimbinkimbi futhi ikhiqize izisho kusukela ekuqaleni.
  • Imidlalo kanye nemikhuba eku-inthanethi: Funda ngokudlala futhi uxazulule izinselele zangempela ukuze ufake ngaphakathi ukuthi i-Regex isebenza kanjani.

Amaphutha ajwayelekile kanye namathiphu asebenzayo wokufunda kahle i-Regex

I-regex inamandla, kodwa futhi ingadida. Lawa macebiso azokusiza ugweme izingibe ezivamile:

  • I-Escape metacharacters lapho usesha inani layo langempela. Ngokwesibonelo, sebenzisa \. okwephuzu, \* okwenkanyezi, \? ukuze aphenywe.
  • Ungasisebenzisi ngokweqile isikhathi (.) kanye ne-wildcard.*. Ziwusizo kakhulu, kodwa zingabuyisela imiphumela engadingeki uma ungayichazi kahle iphethini yakho.
  • Engeza amahange (^, $) uma ufuna ukukhawulela iphethini ekuqaleni noma ekugcineni komugqa futhi ugweme ukufana okungaphelele.
  • Sebenzisa ama-quantifiers athile lapho usesha izimpinda eziqondile, esikhundleni sokuncika kuphela ku-* noma +.
  • Zama njalo ngezibonelo ezinhle nezingezinhle. Ngale ndlela ungathola ukuthi ingabe iphethini ihlanganisa zonke izimo ezidingekayo ngaphandle kokukhiqiza amaphozithizi amanga.
  • Hlukanisa futhi unqobe: Uma unephethini eyinkimbinkimbi kakhulu, yakha ezingxenyeni futhi uhlanganise izingcezu ekugcineni.
  • Zizwe ukhululekile ukuhlola amashidi okukopela, imibhalo kanye nezinkundla. ukubona izibonelo namaqhinga ansuku zonke.

Ukuhlanganisa i-Regex ezilimini zokuhlela namathuluzi

I-regex ihlanganiswe emisebenzini evamile yazo zonke izilimi ezinkulu. Ezinye izibonelo:

  • IJavaScript: Izindlela isivivinyo (), exec() kwento ye-RegExp, nezindlela fanisa(), sesha(), buyisela (), Hlukanisa() of String.
  • IPython: Imodyuli re inikeza imisebenzi efana sesha(), fanisa(), findall(), i-sub(), Njll
  • I-PHP: Imisebenzi preg_match (), preg_replace(), preg_split() nabanye
  • .NET: Isigaba I-Regex ngezindlela ezithuthukisiwe kanye nokusekelwa kwe-PCRE.

In abahleli like I-VSCode, i-Sublime, i-Atom noma i-Notepad++, ungasebenzisa futhi i-Regex ukusesha nokufaka esikhundleni. Futhi ezinhlelweni ze-UNIX, izinsiza ezifana i-grep, sed y awu bafake eyabo injini ye-Regex.

I-regex ekuphathweni kwe-SEO kanye ne-URL

I-Regex iyingxenye eyinhloko yokuthuthukisa i-URL, umzila wewebhu, nokuphathwa kwamapharamitha ashukumisayo ezisekelweni ezifana ne-WordPress, Joomla, kanye ne-e-commerce.

  • .htaccess kanye ne-mod_rewrite: Zikuvumela ukuthi uguqule ama-URL amabi, agcwele ipharamitha abe amakheli anobungane anemithetho ye-Regex. Ngale ndlela, www.ejemplo.com/index.php?p=123 ingaguqulwa ibe www.ejemplo.com/articulo/titulo-amigable, okuthuthukisa kokubili i-SEO nolwazi lomsebenzisi.
  • Ukuhlunga ipharamitha: Khipha, hlanza, noma uguqule amapharamitha ku-URL ukuze uvumelanise imiphumela nezimo zosesho ezihlukene.

Ngokusebenzisa imithetho ye-Regex, abaphathi bewebhu bangakha amaphethini okubhala kabusha ahlonza futhi aguqule izingxenye ze-URL ukuze kuthuthukiswe ukwakheka, ukwenza kahle, nokuqonda ngezinjini zokusesha nabasebenzisi.

Izinkulumo Ezivamile Ezithuthukile: Amasu Nezinsiza

I-Regex ayikuvumeli nje ukusesha okuqondile; isekela ukuqoqwa okunemibandela, ama-subroutines, i-recursion, i-backreferences, nokunye okuningi. Lokhu kuyenza ibe ithuluzi elibalulekile lemisebenzi eyinkimbinkimbi.

  • Ama-subroutines namareferensi: Zikuvumela ukuthi uthole amaphethini aphindaphindiwe, ama-symmetries, ukulandelana nokuqinisekisa okucacile kakhulu.
  • Imibandela: Qalisa ukusesha okuhlukile noma ukuqinisekiswa ngokusekelwe kulokho okuthwetshulwe emaqenjini adlule.
  • Ukuphindaphinda: Ezinye izinjini ezithuthukisiwe zikuvumela ukuthi uchaze amaphethini asebenza kuwo, okuwusizo kakhulu lapho ucubungula idatha ehlelekile njenge-XML noma i-JSON.
  • Izilungisi zomhlaba wonke: (/g, /i, /m ku-Perl/JavaScript) vumela ukusesha komhlaba wonke, okungenazwelo, noma kwemigqa eminingi.

Izinsiza ezibalulekile zokufunda i-Regex

Uma ufuna ukwandisa ulwazi lwakho, lezi zinsiza zizoba usizo:

  • Wikipedia: Izincazelo ezinemininingwane zetiyori nezobuchwepheshe.
  • I-Regular-Expressions.info: Ireferensi nezifundo zawo wonke amazinga.
  • Amashidi okukopela: Izifinyezo ezisheshayo zabo bonke opharetha abavame kakhulu, amaqembu, nemithetho.
  • Okokufundisa okusebenzisanayo: Ukuzijwayeza okuqondile ngokuzivocavoca kanye nempendulo esheshayo.
  • Imiphakathi nezinkundla: Funda kwabanye abasebenzisi, buza imibuzo, futhi wabelane ngamathiphu akho siqu.

I-Learning Regex inikeza inzuzo enkulu ekuphatheni nasekucutshungulweni kombhalo, okuvumela ukusesha okusebenza kahle kakhudlwana, ukuqinisekiswa, ukuguqulwa, kanye ne-automation. Ngokuvumelana nokusebenza, ukubhala amaphethini we-regex kuba lula futhi kube ngokwemvelo. Thatha ithuba lamathuluzi aku-inthanethi nokuzivocavoca okusebenzayo, qala ngezibonelo ezilula, futhi uthuthukele kumaphethini anzima kakhulu. Uma usuwazi kahle izimiso zayo, i-Regex izoba isengezo esingokwemvelo ekuthuthukisweni kwakho nokuphathwa kwesistimu, iqondise imisebenzi ebingase ibonakale iyinkimbinkimbi noma eyisicefe ngaphambili.


Shiya umbono wakho

Ikheli lakho le ngeke ishicilelwe. Ezidingekayo ibhalwe nge *

*

*

  1. Ubhekele idatha: I-Actualidad Blog
  2. Inhloso yedatha: Lawula Ugaxekile, ukuphathwa kwamazwana.
  3. Ukusemthethweni: Imvume yakho
  4. Ukuxhumana kwemininingwane: Imininingwane ngeke idluliselwe kubantu besithathu ngaphandle kwesibopho esisemthethweni.
  5. Isitoreji sedatha: Idatabase ebanjwe yi-Occentus Networks (EU)
  6. Amalungelo: Nganoma yisiphi isikhathi ungakhawulela, uthole futhi ususe imininingwane yakho.