ÒdinatèPwogram

Regilye ekspresyon (PHP). PHP: ekspresyon regilye egzanp

Kòman gwo ak mond divès enfòmasyon, jis kòm byen vit, li ogmante epi li devlope. Nenpòt desizyon - se sèlman yon pwen nan pwosesis la an jeneral nan mouvman. Konesans ak eksperyans fè li posib yo konprann pwosesis la pou reyalize objektif la, men pa janm - pa rezilta a nan reyalizasyon li yo. Li se endesi ke nou ka pale nan pwochen prévisible sou rezilta a, men li enpòtan pou pwosesis la nan fè kont efò pou li se yon pwosesis enpòtan ak objektivman nesesè.

"Dezi ak / oswa yon anpil lajan" pa kreye yon algorithm ki kapab ki, ak nan kou "li gratis" nonm fè, espesyalman lè li pa panse osijè de sa l 'te fè a. Nan nenpòt sitiyasyon pwoblèm nan enfòmasyon gen omwen yon ang kote, men pou l ', anjeneral imedyatman, tach lòt moun pwòp yo vizib, e li pa nesesèman yo ke yo ap tout flè blan.

teknoloji entènèt gen senplifye aksè a enfòmasyon, men kesyon an se - ki jan yo mete yo sou li te gen vle - pa senplifye a, ak akeri nouvo "volim" nan travay yo. Ak byenke PHP ekspresyon regilye diferans se klèman pa fin itilize, yo se yon etap enpòtan pi devan.

fonksyon Senp + algorithm = modèl

Ofri ekspresyon regilye, PHP algorithm siyifikativman diminye kontni an, men dabitid fonksyon rechèch / ranplasman ak pwosesis algoritm yo pa jwenn pèdi enpòtans yo. Nouvo lide pa anonse revolisyon an enfòmasyon. pi plis nan ki ka espere - kontra enfòmèl ant Kòd ak ogmante pwomotè a kapasite nan fòmile yon sijè rechèch rechèch kòrèkteman.

Ou ta dwe konnen ak aplike sou PHP ekspresyon regilye. Men kèk egzanp konvenk epi yo efikas. Men, li ta dwe bay rapò a ke ak avènement de yon motè rechèch nouvo, sant la nan gravite deplase nan modèl la - yon kalite mekanis, byenke an reyalite ranplase pa yon seri fonksyon senp rechèch, kondisyon, pasan, ak lòt operatè yo.

gen:

  • bon jan kalite ak zouti modèn - li se yon bon;
  • wè ak sèvi ak eksperyans la nan kòlèg se pwoblèm nan;
  • konbine reyalite ak lide vityèl - yon garanti nan siksè.

Atenn konesans nan li montre kouman li te nesesè yo konprann pwoblèm nan, yo rezoud li, li se souvan pi enpòtan pase rezilta a espesifik.

Ekspresyon regilye nan PHP yo reprezante pa yon kantite fonksyon nan sentaks la ak lang ak yon anpil nan egzanp itil sou entènèt la. Paske nan sentaks opsyon aplikasyon espesifik yo limite sèlman pa imajinasyon lan nan pwomotè a, men sleuet kenbe nan tèt ou ke se pa tout nan modèl yo pral travay. Lè l sèvi avèk PHP validation nan ekspresyon regilye se esansyèl.

Senp pèsonaj search (fisèl)

Senbòl - sa a se pa toujou yon multiple sèl, ak se souvan yon senbòl, kòm yon chip, gen yon siyifikasyon egzak nan adisyon. Kodaj espesifye karaktè yo vizib nan kòd la yon lòt jan. senbòl la pouvwa gen plizyè opsyon: "$" = "USD" = "USD", ... - se siyifikasyon an egzak nan ki yon kote yon bagay, men se pa nesesèman fèmen, akòz lajan an. Sepandan, siyifikasyon an egzak va kouche nan varyab PHP, ki toujou kòmanse ak karaktè "$ a", men li pa ka kòmanse ak "USD" ak "USD".

senbòl la nan pwogram la pouvwa gen yon non fonksyon (fisèl) nan yon kontèks: rekonèt ak satisfè - li nan soti nan dinamik objè-oryante pwogram lan, lè estrikti, fonksyon, PHP regilye ekspresyon yo yo te itilize dirèkteman pou pran desizyon. Twouve senbòl "vire yo", se sa ki, pou kont li detèmine kisa w dwe fè nan plas la nan ki li se te jwenn, ak wout la li se, "li te jije" nesesè.

Search pou yon karaktè / liy - pa tankou yon egzèsis ki senp, ak enfòmasyon an plis, pi klè nan pi bon an. Li pa toujou nesesè yo jwenn dis pi bon an nan pri manje, chwazi resèt bon gou gato anivèsè nesans, oswa detèmine kontraktè a pou plafon an fo.

Anpil fwa li nesesè optimize algoritm yo ki senp yo pa senp enfòmasyon aritmetik oswa nan kondisyon difisil, lè pèsonaj la vle yo chwazi nan yon baz done, ak liy lan nan ki li nesesè jwenn - yon santèn kote sa yo. Pri a ki egal a chwazi yon karaktè soti nan tan an baz done a echantiyon, ak pri a nan ki kote yo gade - tan rechèch dè santèn notwa nan kote sa yo.

senbòl Lone - li se pa yon fraz, epi yo pa yon fraz kèk, li te kapab nenpòt kote epi yo dwe tankou ti jan vle. Ki jan yo detèmine kisa ki te jwenn se vle a?

Egzanp: rechèch pou pri

Jis jwenn tèks "$" senbòl la - yon ti kras. Tcheke ke li fè fas a yon nimewo, li se pa toujou ase. Si ou bay yon pwen oswa nimewo anvan senbòl "$ a" se yon garanti ke pri yo nan ki senbòl yo monetè se devan yo pa pral pran an kont. Genyen tou omisyon pri a, ki an jeneral se pa sa espesifye lajan, men nan paj la li se sou enstriksyon eksplisit.

An jeneral, solisyon an nan pwoblèm nan nan fason ki nòmal gonfle pi lwen pase algorithm rekonesans ak tan konsome. Pandan se tan, lè l sèvi avèk yon ekspresyon regilye, ki kantite PHP pral jwenn pa gen okenn pwoblèm.

$ CContents = preg_match_all ( "/ [0-9] + ([\ $] | usd | y \ £ \ | ue) {1} / m.";

"Gade e-mail - 2usd;
";
"Find e-mail - 2u.e;
.";
"Travay e-mail - ue2;
";
"Tcheke e-mail - $ 13", $ aResult);
. '; '. enplod ( ',', $ aResult [0]). '
'.

Va reponn: "2; 2usd, 2u.e.", Men, pa t 'jwenn anyen nan liy lan: "tcheke e-mail - $ 13."

Bay pou prezans nan modèl la nan devan oswa dèyè karaktè a, ou kapab reyalize siksè byen vit nan pifò ka.

$ CContents = preg_match_all ( "/ ([0-9] + ([\ $] | usd | y \ £ \ |. Ue) {1}) | (([$] | usd | y \ £ \. | ue) {1} [0-9] +) / m ";
"Gade e-mail - 2usd;
";
"Find e-mail - 2u.e;
.";
"Travay e-mail - ue2;
";
"Tcheke e-mail - $ 13", $ aResult);
. '; '. enplod ( ',', $ aResult [0]). '
'.

Rezilta: "4; 2usd, 2u.e., ue2, $ 13."

Sou entansyonel lojik

Regilye Ekspresyon PHP ofri, osi byen ke lòt zouti, men li se pa nesesè pou aplike pou yo selon règ li yo oswa sèvi ak lòt fonksyon bay miniskil fason sentaks.

Posib anvan nan konmansman an nan rechèch la oblije ale nan etalaj la, ak plas la kote nou rechèch, kraze nan eleman dapre kritè anvan an. Jis yon koup la te eklate () ak enplod () souvan senplifye ak vitès moute desizyon an.

Pou egzanp, kòm yon rezilta nan travay preliminè fòme yon etalaj de strings (done) nan distri a sou pòmdetè konbyen kolekte tout bouk: Unknown ImyaDerevnya ak volim ranmase, epi si peyi a kouri plizyè konpayi nan yon etalaj de strings se ImyaDerevnya.ImyaPredpriyatie ak valè a "; " ak sou sa tout antrepriz. Kalkile kantite total ranmase nan ka sa a pa pral posib, men si ou fè impode ( ";", $ aResult), pral fè yon sèl long liy, nan ki pè a - ImyaDerevnya / ImyaDerevnya.ImyaPredpriyatie - yon koleksyon nan gwosè - yo pral transfere via ";" la. Fè yon ranvèse sou ki kapab lakòz, eksploze ( ";", $ aResult) - yon etalaj nan tout, ki t'ap ranmase ak kijan li se kolekte, ak Lè sa a pa retire liy ki soti nan tout karaktè ki pa nimerik, nou gen nimewo sèlman, sòm total la nan ki se volim nan total ranmase. Nan

Nan egzanp sa a, ekspresyon regilye a nan PHP pa pèmèt yo gade twòp, yo fasil ak abòdab ekstrè vle valè yo nimerik. Byen vit ak efikasite, pa gen pwoblèm konbyen tan li pouvwa gen non yo nan ti bouk ki te ak biznis yo. Solisyon sa a se pa ideyal, men li montre ke pa toujou swiv règleman yo ta dwe. Li se souvan posib reyalize vle a nan yon fason dwòl.

Abstraksyon ki sòti bò kote teknik, kodaj la

Sentaks la nan algorithm a pa di ki jan li sanble nan reyalite. Sepandan, bay kodaj la menm nan paj la, ak ranje script (ki se t'ap chache nan ki imaj yo) ka plonje nan pwoblèm nan se aspè teknik li yo.

Youn pa dwe sèlman konnen ki sa yo gade pou, men ki kote yo fè l ', lè, konbyen lajan, ki sa ki chanje ak ki jan. Fòmèlman PHP ekspresyon regilye egzekite kòm yon mekanis konplè plen Anons Spesyal nan pwòp li yo, men pou plizyè rezon, realizasyon an nan tokay li yo nan plizyè lang diferan. Tankou yon règ jeneral, anvan ou deplase yon modèl patikilye nan yon anviwònman zouti patikilye pou yon travay espesifik, li nesesè pote soti nan-wo kalite adaptasyon, tcheke pou tout opsyon yo posib pou done yo sous.

Menm si ou sèvi ak eksperyans pwòp ou a devlope nan PHP, ekspresyon regilye, egzanp, modèl ak konsepsyon mande pou atansyon tcheke. Dynamique chanje fonctionnalités lang, sentaks la ak ègzekutabl.

Estrikti a ak kontni nan yon modèl

Ki sa ki te deja ekri nan fòm lan nan yon konbinezon de fonksyon rechèch, kondisyonal, operasyon ranplasman, insert, efase, se yon fisèl dapre kèk regleman nan karaktè - regilye modèl ekspresyon. An reyalite, se yon kantite siyifikatif kode nan yon sèten fason ak egzekite pa règleman espesifik.

Menm jan li se enposib fè nenpòt ki operatè lang debogaj, ou pa ka debug yon modèl ekspresyon regilye, pwosesis sa a kapab sèlman rivalize. Tankou yon règ jeneral adopte vèsyon: travay - pa travay. sentaks la se trè senp, byenke pèsepsyon l 'yo, espesyalman nan kòmansman an, se trè difisil.

Yon egzanp sou yon ekspresyon senp

Nan yon reyalizasyon senp, modèl la matche ak fisèl la:

$ CContents = preg_match ( "/ asdf / m", "asdf", $ aResult). '; '. enplod ( ',', $ aResult).

Rezilta a yo pral "1; asdf", depi fonksyon an konplete operasyon li yo nan premye la te rankontre yon modèl matche. Rezilta a yo pral menm bagay la, si nou gade nan liy "aaaasdf" nan liy "zzzasdfvvv". Si ou presize karaktè nan premye ak / oswa dènye a, rezilta a ta dwe klè:

$ CContents = preg_match ( "/ ^ asdf / m", "asdf", $ aResult). '; '. enplod ( ',', $ aResult). '
';
$ CContents. = Preg_match ( "/ asdf $ /", "asdf", $ aResult). '; '. enplod ( ',', $ aResult). '
'.

Rezilta a yo pral: 1; asdf1; asdf.

senbòl yo "*" ak "$" endike ki kote kòmanse ak modèl ki fini. Lakòz preg_match fonksyon - ki kantite alimèt, li kapab 0, 1, oswa fo, si se yon erè detekte. twazyèm posiblite a - yon etalaj - mete sèlman yo te jwenn eleman. Nan ka a nan lè l sèvi avèk fonksyon preg_match_all () rechèch kontinye nan liy lan fini.

$ CContents = preg_match ( "/ asdf / m", "asdf123asdf456asdf789", $ aResult). '; '. enplod ( ',', $ aResult). '
';
$ CContents. = Preg_match_all ( "/ asdf / m", "asdf123asdf456asdf789", $ aResult). '; '. enplod ( ',', $ aResult [0]). '
'.

rezilta:

1; asdf
3; asdf, asdf, asdf.

Si ou pa sèvi ak enstriksyon espesyal, chak karaktè defini tèt li ak plas li, kèlkeswa kodaj nan liy ak modèl kodaj. pwogramè a dwe asire ke kodaj la nan eleman sa yo te kòrèk nan relasyon ak yon chak paj lòt ak kodaj.

PHP fonksyon pou travay ak ekspresyon regilye

ekspresyon regilye pou PHP reprezante yon fisèl karaktè ekri nan yon sèten fason. Anjeneral, pa analoji ak lang programmation lòt, tou sa ekri nan senbòl yo "/" ... "/" epi yo mete yo nan giymè, ou ka itilize yon selibatè oubyen doub depann sou algorithm a.

prensipal fonksyon php prèg Matche ak nan ekspresyon regilye sèvi ak tou de matche ak modèl ak sispann li nan kote a an premye, yon Variant ladan l 'ak yon _all sifiks jwenn tout alimèt, ak sorties etalaj la ladan l'. prèg Fonksyon ranplase ranplase chak matche ak yon modèl, li ka travay avèk ranje, sa ki pèmèt konsepsyon rechèch ak fè ranplasman nan yon varyete de chwa.

Enteresan opsyon pou travay ak ekspresyon regilye ka devlope lè l sèvi avèk fonksyon preg_replace_callback ki pran pa gen okenn tèks ranplasman, ak non an nan fonksyon an, ki pral pote soti nan tankou yon ranplasman. Anplis de sa nan valè a pratik ou ka aplike fòmil tcheke modèl, ke devlopman an ak debogaj nan dènye a jwe yon wòl enpòtan.

Dimansyon de ekspresyon regilye

Depi lang ipèrtèks yo ofisyèlman enfòmasyon yo yon limit pi gwo yo materyèl la kòmanse. Devlope yon gwo kantite modèl ak desen ki pèmèt nan pwosesis gwo kantite done avèk efikasite. Yon pòsyon enpòtan nan travay sa a fèt mekanism bati nan divès kalite sistèm jesyon kontni (CMS).

Se pa etonan, anpil CMS vin defakto estanda pou bati sit, epi yo te akonpaye pa konpayi yo (mete ajou) lojisyèl, yo pa t 'fè l' nesesè pote soti nan devlopman nan modèl sou pwòp li yo. Sepandan, deyò nan sistèm sa yo gen eksperyans avèk ekspresyon regilye se yon bagay ki itil.

ekspresyon regilye ak enfòmasyon an reyèl

Yon zòn enpòtan nan aplikasyon an ekspresyon regilye nan bibliyotèk PHP fòme PHPOffice nan avènement. Travay ansanm ak dokiman, Des, e li te toujou te gen enpòtan ak OOXML estanda se posib pa sèlman yo dezame gaz dokiman yo reyèl, men tou, nan fòm pwogram yo.

Mèsi a devlopman nan ipèrtèks ak PHP lang an patikilye, gen yon opòtinite reyèl yo otomatize "pwodiksyon an" nan dokiman "estanda fòm", pou egzanp, bòdwo pou peman, rapò, plan biznis, ak lòt objè enfòmasyon, estrikti a ak sa ki yo aktyèlman susèptibl ofisyalize ak automatisation.

An koneksyon avèk aplikasyon an a dekri pwosesis la devlopman langaj OOXML nan ekspresyon regilye se byen diferan de k ap travay tradisyonèl ak markeup lang HTML ak CSS nan plas la an premye. Dokiman an aktyèl, eksepte regilye nèf semenn klas ak nan adisyon nan kontni aktyèl la gen yon anpil nan detay. Pou egzanp, yon dokiman ki te kreye otomatikman avèk pwogram lan, ap gen yon kontni ki gen fòs ak egzat. Dokiman fòme oswa moun nan trete, pral gen yon kontni, yo te pentire sou yon plusieurs nan Tags. Nenpòt travay ak dokiman an mennen nan lefèt ke Semantics yo nan li ka yon sèl, men pentire nan kantite diferan sou desen diferan.

enfòmasyon Natirèl ak sitiyasyon

Yon moun toujou enterese nan solisyon an nan pwoblèm nan, ki te sèn enfòmasyon ak, kòm yon rezilta, yo pral bay enfòmasyon a menm. Prezante deklarasyon an nan pwoblèm nan nan fòm lan nan yon dokiman, yon moun vin yon Semantics espesifik, ki se nan spesifikasyon la de ekspè nan (koreksyon, klarifye Libellés, efase, modifye) pa sèlman mennen nan vèsyon miltip nan yon dokiman, men tou, vèsyon li yo ak kontni diferan.

An patikilye, travay la mete nan fraz la "Rezoud uranenie kare" apre koreksyon pral gade tankou sa a: ". Pou rezoud yon ekwasyon kwadratik" Si nan premye te erè a premye te korije, ak Lè sa dezyèm lan, Lè sa a, enfòmasyon ki natirèl nan OOXML style ta ka gade tankou: "[Rezoud] [] [kare] [e] [] [cheers] [b] [nenie]", men sa a pa fè sa garanti ke sa a se travay la ap parèt nan OOXML nan Tags (parantèz rivalize parantèz Tags).

Pou mete ansanm enfòmasyon ki ka fasil apre chak travay pwosesis la koreksyon, men chak fwa yo ap pwosedi sa a dwe fèt pa algoritm divès kalite. ekspresyon regilye, kòm yon sòt de zouti nan ofisyalize nan pwoblèm enfòmasyon te vin tounen, an efè, mache chemen soti nan estrikti yo fòmèl pou ipèrtèks nan enfòmasyon natirèl la.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ht.birmiss.com. Theme powered by WordPress.