Mga computerProgramming

Regular na expression (PHP). PHP: regular na mga expression halimbawa

Gaano kalaki at magkakaibang mundo ng impormasyon, tulad ng mabilis, lumalaki ito at bubuo. Anumang desisyon - lamang ng isang punto sa pangkalahatang proseso ng paggalaw. Kaalaman at karanasan gawing posible upang maunawaan ang proseso ng pagkamit ng mga layunin, ngunit hindi kailanman - hindi ang resulta ng kanyang mga nagawa. Ito ay walang katiyakan na maaari naming makipag-usap sa nakikinita hinaharap sa resulta, ngunit ito ay mahalaga na ang proseso ng nagsusumikap para sa mga ito ay isang makabuluhang at objectively kinakailangang proseso.

"Desire at / o ng maraming pera" ay hindi lumikha ng isang algorithm na may kakayahang iyon, at siyempre "libreng" man ang ginagawa, lalo na kapag siya ay hindi nag-iisip tungkol sa kung ano siya ay paggawa. Sa anumang sitwasyon ang problema ng impormasyon ay may hindi bababa sa isang bulag na lugar, ngunit para sa kanya, kadalasan ay agad-agad, ang iba na malinis stains ay nakikita, at hindi kinakailangan na ang mga ito ang lahat ng mga puting bulaklak.

Internet teknolohiya ay pinadali ang pag-access sa impormasyon, ngunit ang tanong ay - kung paano ilagay sa pagkakaroon ng ang nais na - hindi pinasimple, at nakuha bagong "volume" ng trabaho. At bagaman PHP regular na expression puwang ay malinaw na hindi naubos, ang mga ito ng isang makabuluhang hakbang pasulong.

Simple function + algorithm = pattern

Nag-aalok ng regular na mga expression, PHP algorithm makabuluhang binabawasan ang nilalaman, ngunit ang karaniwang mga function sa paghahanap / kapalit at processing algorithm nahanap hindi mawawala ang kanilang kahalagahan. Bagong mga ideya ay hindi maghudyat ng impormasyon rebolusyon. Ang pinaka-na maaaring inaasahan - compact code at dagdagan ang nag-develop ng kakayahan upang bumalangkas ng isang query sa paghahanap ng tama.

Dapat mong malaman at mag-aplay sa PHP regular na expression. Mga halimbawa kapani-paniwala at epektibo. Ngunit ito ay dapat ibigay ang ulat na may ang pagdating ng isang bagong search engine, ang sentro ng grabidad Paglipat sa pattern - isang uri ng mekanismo, kahit na sa katunayan pinalitan ng isang hanay ng mga simpleng pag-andar ng paghahanap, mga kondisyon, mga loop, at iba pang mga operator.

magkaroon ng:

  • Kalidad at modernong kasangkapan - ito ay mabuti;
  • makita at gamitin ang karanasan ng mga kasamahan ay ang bagay;
  • pagsasama-sama ng katotohanan at virtual ideya - isang garantiya ng tagumpay.

Pagkamit ng kaalaman sa kung paano ito ay kinakailangan upang maunawaan ang problema, upang malutas ito, ito ay madalas na mas mahalaga kaysa sa mga tiyak na resulta.

Regular Expression sa PHP ay kinakatawan ng isang bilang ng mga pag-andar sa syntax ng wika at ng maraming mga kapaki-pakinabang na halimbawa sa Internet. Dahil sa syntax tiyak na mga opsyon sa aplikasyon ay limitado lamang sa pamamagitan ng imahinasyon ng nag-develop, ngunit sleuet isaisip na hindi lahat ng mga template na gagana. Ang paggamit ng PHP pagpapatunay ng mga regular na expression ay napakahalaga.

Simple karakter paghahanap (string)

Simbolo - ito ay hindi palaging isang solong byte, at ay madalas na isang simbolo, bilang isang chip, ay may isang tiyak na kahulugan na higit pa. Encoding Tinutukoy nito ang makikitang character sa code sa ibang paraan. Ang simbolo ay maaaring magkaroon ng ilang mga pagpipilian: "$" = "USD" = "USD", ... - ay ang eksaktong kahulugan ng mga iyon sa isang lugar sa isang bagay, ngunit hindi kinakailangan na malapit, dahil sa pera. Gayunman, ang eksaktong kahulugan ay maaaring hindi nagsasabi ng totoo sa variable PHP, na kung saan ay laging nagsisimula sa mga character na "$", ngunit hindi maaaring magsimula sa "USD" at "USD".

Ang simbolo ng programa ay maaaring maging isang function na pangalan (string) sa konteksto ng: makilala at matupad ang - ito ay mula sa mga dynamic na object-oriented programming, kapag ang istraktura, function, PHP regular na expression ay ginagamit nang direkta para sa paggawa ng mga desisyon. Natagpuan ang simbolong "liko", iyon ay, sa pamamagitan ng kanyang sarili ang nagtatakda kung ano ang gagawin sa lugar kung saan ito ay natagpuan, at ang paraan na ito ay, "siya palagay nito" kinakailangan.

Maghanap para sa isang character / linya - hindi tulad ng isang simpleng ehersisyo, at ang karagdagang impormasyon, ang mas malinaw na ang mas mahusay. Ito ay hindi palaging kinakailangan upang mahanap ang sampung pinakamahusay sa mga presyo ng pagkain, pumili ng masarap na mga recipe birthday cake, o upang matukoy ang contractor para sa mga huwad na kisame.

Kadalasan ito ay kinakailangan upang i-optimize ang mga simpleng algorithm ay hindi simpleng arithmetic impormasyon o sa mga mahirap na mga kondisyon, kapag ang nais na karakter sa pumili mula sa isang database, at ang mga linya sa kung saan ito ay kinakailangan upang mahanap - isang daang mga site. Ang presyo ay katumbas na pumili ng isang character mula sa oras na ang sample database, at ang presyo ng kung saan upang tumingin - time na paghahanap kilala daan-daang mga sites.

Lone simbolo - ito ay hindi isang parirala, at hindi ng ilang mga pangungusap, siya ay maaaring maging kahit saan at maaaring bilang maliit na bilang ninanais. Paano upang matukoy kung ano ay natagpuan ay ang nais na?

Halimbawa: ang paghahanap para sa mga presyo

Basta hanapin ang tekstong "$" simbolo - ng kaunti. Suriin na ito ay nakaharap ng isang numero, ito ay hindi palaging sapat. Kung magbibigay ka ng isang punto o numero bago ang simbolong "$" ay isang garantiya na ang mga presyo kung saan ang simbolo ng pera ay mas maaga ay hindi kinuha sa account. Mayroon ding tinanggal na ang presyo, na sa pangkalahatan ay hindi tinukoy na pera, ngunit sa pahina ng ito ay sa tahasang mga tagubilin.

Sa pangkalahatan, ang solusyon ng problema sa karaniwang paraan awdit lampas pagkilala algorithm at oras-ubos. Samantala, ang paggamit ng isang regular na expression, ang bilang ng PHP ay makakahanap ng walang mga problema.

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

"Look e-mail - 2usd;
";
"Hanapin ang e-mail - 2u.e;
.";
"Trabaho e-mail - ue2;
";
"Suriin ang e-mail - $ 13", $ aResult);
. '; '. pumutok sa loob ( ',', $ aResult [0]). '
'.

Sasagutin: "2; 2usd, 2u.e.", Subalit hindi makahanap ng anumang bagay sa linya: "check ng e-mail - $ 13."

Ang pagbibigay para sa pagkakaroon ng pattern sa harap o sa likod ng mga karakter, maaari mong makamit ang tagumpay nang mabilis sa karamihan ng mga kaso.

$ CContents = preg_match_all ( "/ ([0-9] + ([\ $] | usd | y \ £ \. | Ue) {1}) | (([$] | usd | y \ £ \. | ue) {1} [0-9] +) / i ";
"Look e-mail - 2usd;
";
"Hanapin ang e-mail - 2u.e;
.";
"Trabaho e-mail - ue2;
";
"Suriin ang e-mail - $ 13", $ aResult);
. '; '. pumutok sa loob ( ',', $ aResult [0]). '
'.

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

Tungkol sa mga hindi nilalayong logic

Karaniwang Expression PHP alok, pati na rin ang iba pang mga kasangkapan, ngunit ito ay hindi kinakailangan upang ilapat ang mga ito ayon sa mga patakaran nito o gumamit ng iba pang mga pag-andar na ibinigay lowercase syntax paraan.

Posibleng bago ang simula ng search kinakailangan upang i-on sa array, at ang lugar kung saan namin maghanap, hinati-hati sa mga bahagi ayon sa paunang mga pamantayan. Lamang ng ilang mga sumabog () at pumutok sa loob () madalas na pinapasimple at pinapabilis ang desisyon.

Halimbawa, bilang isang resulta ng paunang trabaho binuo ng isang array ng mga string (data) sa distrito sa kung gaano karaming patatas nakolekta sa bawat village: Unknown ImyaDerevnya at dami ng nakolekta, at kung ang bansa ay nagpapatakbo ng ilang mga kumpanya sa isang array ng mga string ay ImyaDerevnya.ImyaPredpriyatie at halaga sa pamamagitan ng "; " at iba pa ang lahat ng mga enterprise. Kalkulahin ang kabuuang halaga na nakolekta sa kasong ito ay hindi magiging posible, ngunit kung gagawin mo impode ( ";", $ aResult), ay isa mahabang linya, kung saan ang pares - ImyaDerevnya / ImyaDerevnya.ImyaPredpriyatie - isang koleksyon ng laki - ay ililipat sa pamamagitan ng ";". Gawin ang isang reverse sa mga nagresultang, sumasabog ( ";", $ aResult) - isang array ng lahat, na nakolekta at kung paano ito ay kinokolekta, at pagkatapos ay sa pamamagitan ng pag-alis ng mga linya mula sa lahat ng mga di-numeric character, kami ay may lamang mga numero, ang kabuuan ng kung saan ay ang kabuuang dami ng nakolekta.

Sa halimbawang ito, ang mga regular na expression sa PHP payagang hindi upang tumingin masyadong marami, ang mga ito ay madali at abot-kayang kunin ang nais na de-numerong halaga. Nang mabilis at mahusay, hindi mahalaga kung gaano katagal maaaring ito ay ang mga pangalan ng mga nayon at mga negosyo. solusyon na ito ay hindi perpekto, ngunit ito ay nagpapakita na hindi laging sundin ang mga patakaran ay dapat na. Ito ay madalas na posible upang makamit ang ninanais na nasa hindi karaniwang paraan.

Abstracting mula sa mga teknikal na bahagi, ang pag-encode

Ang syntax ng algorithm ay hindi sabihin ang hitsura nito sa katotohanan. Gayunpaman, ang pagbibigay ng parehong pag-encode ng pahina, at mga hilera script (na kung saan ay na hinahangad kung saan ang mga imahe) ay maaaring ulos sa ang problema ay ang kanyang mga teknikal na aspeto.

hindi lamang isa ay dapat malaman kung ano ang hahanapin, ngunit kung saan upang gawin ito, kailan, kung magkano, kung ano upang baguhin at kung paano. Pormal na PHP regular na mga expression pinaandar bilang isang kumpletong ganap na tampok na mekanismo ng kanyang sarili, ngunit para sa maraming dahilan, ang pagsasakatuparan ng kani-counterparts sa maraming wika naiiba. Bilang isang pangkalahatang panuntunan, bago ka lumipat sa isang partikular na pattern sa isang partikular na kapaligiran na tool para sa isang tiyak na gawain, ito ay kinakailangan upang magsagawa ng mataas na kalidad na adaptation, i-check para sa lahat ng posibleng mga opsyon para sa data source.

Kahit na gumagamit ka ng iyong sariling mga karanasan sa pagbubuo sa PHP, regular na expression, halimbawa, mga template at disenyo ay nangangailangan ng maingat na pagsusuri. Dynamic na pagbabago ng pag-andar wika, syntax at runtime.

Ang istraktura at nilalaman ng isang template

Ano ay dating nakasulat sa anyo ng isang kumbinasyon ng mga pag-andar ng paghahanap, conditionals, kapalit na operasyon, isingit, burahin, ay isang string ng mga character ayon sa ilang mga panuntunan - regular na expression pattern. Sa katunayan, isang makabuluhang halaga ay naka-encode sa isang tiyak na paraan at isinagawa ng mga tiyak na mga patakaran.

Tulad ng ito ay imposible upang gawin ang anumang operator debugging wika, hindi mo maaaring i-debug ang isang regular na pattern na expression, ang prosesong ito ay maaari lamang tularan. Bilang isang pangkalahatang panuntunan na pinagtibay na bersyon: gawa - ay hindi gumagana. syntax ay napaka-simple, kahit na ang kanyang pang-unawa, lalo na sa simula, ay napakahirap.

Ang isang halimbawa ng isang simpleng expression

Sa isang simpleng diwa, ang template ay tumutugma sa string:

$ CContents = preg_match ( "/ asdf / i", "asdf", $ aResult). '; '. pumutok sa loob ( ',', $ aResult).

Ang resulta nito ay "1; asdf", dahil sa ang pag-andar sa makumpleto ang operasyon nito sa unang nagkakilala ng pagtutugma template. Ang resulta ay ang parehong, kung tinitingnan namin ang linyang "aaaasdf" sa linya "zzzasdfvvv". Kung tinukoy mo ang una at / o huling character, ang resulta ay maging malinaw:

$ CContents = preg_match ( "/ ^ asdf / i", "asdf", $ aResult). '; '. pumutok sa loob ( ',', $ aResult). '
';
$ CContents. = Preg_match ( "/ asdf $ /", "asdf", $ aResult). '; '. pumutok sa loob ( ',', $ aResult). '
'.

Ang resulta nito ay: 1; asdf1; asdf.

Ang mga simbolo "*" at "$" ay nagpapahiwatig kung saan magsisimula at ang nagtatapos pattern. Magresulta preg_match function na - ang bilang ng mga tugma, maaari itong maging 0, 1, o hindi totoo, kung ang error ay napansin. Ang pangatlong pagpipilian - isang array - ilagay lamang natagpuan elemento. Sa kaso ng paggamit ng preg_match_all function () sa paghahanap ay patuloy na sa dulo ng linya.

$ CContents = preg_match ( "/ asdf / i", "asdf123asdf456asdf789", $ aResult). '; '. pumutok sa loob ( ',', $ aResult). '
';
$ CContents. = Preg_match_all ( "/ asdf / i", "asdf123asdf456asdf789", $ aResult). '; '. pumutok sa loob ( ',', $ aResult [0]). '
'.

Ang resulta:

1; asdf
3; asdf, asdf, asdf.

Kung hindi mo gamitin ang mga espesyal na mga tagubilin, ang bawat character tumutukoy sa kanyang sarili at ang kanyang lugar, hindi alintana ng linya coding at template coding. programmer ay dapat na matiyak na ang encoding ng mga sangkap na ito ay tama na may kaugnayan sa bawat isa at encoding page.

PHP function para sa nagtatrabaho sa mga regular na expression

Regular na expression para sa PHP ay kumakatawan sa isang character na string na naitala sa isang tiyak na paraan. Karaniwan, sa pamamagitan ng pagkakatulad sa iba pang mga wika programming, nangakasulat sa mga simbolo "/" ... "/" at inilagay sa mga panipi, maaari mong gamitin ang single o double depende sa algorithm.

Ang pangunahing function na php preg tugma regular na expression ay gumagamit ng parehong pattern ng tugma at hihinto ito sa unang lugar may variant nito na may suffix _all hahanapin ang lahat ng mga tugma, at outputs ang array doon. Function preg palitan ang pumapalit sa bawat tumutugma sa isang template, maaari itong gumana sa array, na nagpapahintulot sa search disenyo at magsagawa ng pagpapalit ng isang iba't ibang mga pagpipilian.

Kagiliw-giliw na mga pagpipilian para sa nagtatrabaho sa mga regular na expression ay maaaring binuo gamit ang preg_replace_callback function na tumatagal ng walang kapalit na teksto, at ang pangalan ng pag-andar, na kung saan ay magtataglay out tulad ng isang kapalit. Bilang karagdagan sa mga praktikal na halaga na maaari mong ipatupad ang mekanismo check pattern, na ang pag-unlad at pag-debug ng huling gumaganap ng isang makabuluhang papel.

Saklaw ng mga regular na expression

Dahil hypertext wika ay formalized impormasyon sa isang mas higit na lawak ang mga ito ay ang panimulang materyal. Binuo ang isang malaking bilang ng mga template at mga disenyo na nagbibigay-daan upang iproseso ang mga malalaking halaga ng data mahusay. Ang isang makabuluhang bahagi ng trabahong ito ay ginanap mekanismo na binuo sa iba't-ibang mga nilalaman management system (CMS).

Hindi nakakagulat na maraming mga CMS naging de facto na pamantayan para sa pagbuo ng mga site, at na sinamahan ng mga kompanya (updated) ng software, hindi nila gawin itong kinakailangan upang isagawa ang pag-unlad ng pattern sa kanyang sarili. Gayunpaman, sa labas ng naturang mga sistema ay may karanasan sa mga regular na expression ay napaka-kapaki-pakinabang.

Regular na expression at ang tunay na impormasyon

Isang mahalagang lugar ng application ng mga regular na mga expression sa PHP aklatan nabuo ang pagdating PHPOffice. Makipagtulungan sa mga dokumento, spreadsheet, at binibigyan ng mahalaga at OOXML standard ay posible hindi lamang upang magtanggal-tanggal ang mga aktwal na mga dokumento, ngunit din sa hugis ng kanilang programa.

Salamat sa pag-unlad ng hypertext at PHP wika sa partikular, mayroong isang tunay na pagkakataon upang i-automate ang "production" ng mga dokumento "standard form", halimbawa, mga invoice para sa pagbabayad, mga ulat, negosyo plano, at iba pang impormasyon na mga bagay, ang istraktura at ang mga nilalaman ay talagang tumututol sa pormalisasyon at automation.

Sa pagkakaroon ng kaugnayan sa application upang ilarawan ang wika OOXML proseso-unlad ng mga regular na expression ay lubos na naiiba mula sa mga tradisyonal na pagtatrabaho sa markup language ng HTML at CSS sa unang lugar. Ang aktwal na dokumento, maliban sa pagmamarka at bilang karagdagan sa mga aktwal na nilalaman ay may isang pulutong ng mga detalye. Halimbawa, ang isang dokumento na ay awtomatikong nilikha sa pamamagitan ng programa, ay magkakaroon ng isang malakas at tumpak na nilalaman. Document nabuo o ang taong ginagamot, ay magkakaroon ng nilalaman, ay pininturahan sa loob ng isang mayorya ng mga tag. Ang anumang gawain na may mga dokumento ay humantong sa ang katunayan na ang semantika ng ito ay maaring maging isa, ngunit pininturahan ng iba't ibang mga halaga sa iba't-ibang disenyo.

Natural impormasyon at sitwasyon

Ang isang tao ay laging interesado sa ang solusyon ng problema, na kung saan ay itinanghal impormasyon at, bilang isang resulta, ang parehong impormasyon ay ibinigay. Ang pagtatanghal ng mga pahayag ng mga problema sa anyo ng isang dokumento, ang isang tao ay makakakuha ng isang tiyak na semantika, na kung saan ay sa detalye ng mga eksperto (susog, pagpapaliwanag sa mga salita, tanggalin, i-edit) hindi lamang humahantong sa maramihang mga bersyon ng isang dokumento, ngunit din sa mga bersyon nito sa iba't ibang nilalaman.

Sa partikular, ang gawain na itinakda ng ang pariralang "Solve square uranenie" pagkatapos ng pag-edit magmumukhang ganito: ". Upang malutas ang isang parisukat equation" Kung sa una sa unang error ay itatama, at pagkatapos ay ang pangalawang, pagkatapos ay ang mga likas na impormasyon sa OOXML estilo ay maaaring magmukhang: "[malulutas] [] [square] [e] [] [cheers] [b] [nenie]", ngunit ito ay hindi garantiya na ito ay ang gawain ay lilitaw sa tag OOXML (bracket tularan bracket tag).

Upang ilagay ang sama-sama ng impormasyon ay maaaring maging madaling pagkatapos ng bawat gawain sa proseso ng pag-edit, ngunit sa bawat oras na ang pamamaraan na ito ay ginanap sa pamamagitan ng iba't-ibang mga algorithm. Regular na expression, bilang isang uri ng tool ng pormalisasyon ng mga problema ng impormasyon ay naging, sa epekto, naglalakad mga landas mula sa pormal na kaayusan ng hypertext sa natural na impormasyon.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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