KomputilojProgramado

Regulaj esprimoj (PHP). PHP: regulaj esprimoj, ekzemploj

Kiom granda kaj diversa mondo de informo, kiel rapide, ĝi ekspansiiĝas kaj ĝi disvolvas. Ajna decido - nur punkto en la totala procezo de movado. Scio kaj sperto ebligas kompreni la procezo de realigado de la celo, sed neniam - ne la rezulto de liaj atingoj. Estas dubinde, ke oni povas paroli en la proksima estonteco de la rezulto, sed gravas, ke la procezo de klopodeganta pro ĝi estas signifa kaj objektive necesaj procezo.

«Deziro kaj / aŭ multe da mono" kreas nenian algoritmo kapablas tion, kaj kompreneble "libera" viro faras, precipe kiam li ne pensas pri kion li faras. En ĉiu situacio la informo problemo havas almenaŭ unu blinda punkto, sed por li, kutime tuj, aliaj puraj makuloj estas videblaj, kaj ne nepre ke ili estas ĉiuj blankaj floroj.

Interreta teknologio simpligita la aliron al informoj, sed la demando estas - kiel surmeti havi la deziratan - ne simpligita, kaj akiris novajn "volumo" de laboro. Kaj kvankam PHP regula esprimo breĉo estas klare ne elĉerpita, ili estas signifa paŝo antaŭen.

Simpla funkcioj + algoritmo = skemo

Proponante regulaj esprimoj, PHP algoritmo grave reduktas la enhavon, sed la kutima serĉo funkcioj / anstataŭigo kaj prilaborado algoritmoj trovis ne perdis sian gravecon. Novaj ideoj ne portend la informo revolucio. La plej kiu povas atendi - kompaktan kodon kaj pliigi la ellaboranto la kapablon formuli pridemando ĝuste.

Vi devus scii kaj apliki en PHP regulaj esprimoj. Ekzemploj konvinka kaj efika. Sed ĝi devus doni la raporton, ke kun la alveno de nova serĉilo, la centro de gravito ŝanĝiĝis la modelo - ia mekanismo, kvankam fakte anstataŭigita per aro de simplaj serĉo funkcioj, kondiĉoj, loops, kaj aliaj telefonistoj.

havas:

  • kvalito kaj modernaj ilo - ĝi estas bona;
  • vidi kaj uzi la sperto de kolegoj estas al;
  • kombinante realaĵo kaj virtuala ideo - garantio de sukceso.

Atingi scion de kiel estis necesa por kompreni la problemon, por solvi ĝin, estas ofte pli grava ol la specifa rezulto.

Regula Esprimoj en PHP estas reprezentitaj de kelkaj funkcioj en la lingvo sintakso kaj multajn utilajn ekzemplojn en Interreto. Pro sintakso specifa aplikaĵo ebloj estas limigitaj nur de la imago de la ellaboranto, sed sleuet memoru, ke ne ĉiuj ŝablonoj funkcios. Uzante PHP kontrolada de regulaj esprimoj estas esenca.

Simpla serĉo karaktero (kordo)

Simbolo - tio ne ĉiam sola bajto, kaj estas ofte simbolo, kiel blato, havas precizan signifon aldone. Encoding specifas la videblaj karakteroj en la kodo malsame. La simbolo povas havi plurajn opciojn: "$" = "USD" = "USD", ... - estas la ĝusta signifo de tiu ie ion, sed ne nepre proksimaj, pro la valuto. Tamen, la ekzakta signifo povas kuŝi en ŝanĝiĝema PHP, kiu ĉiam komencas la signo "$", sed ne povas komenci per "USD" kaj "USD".

La simbolo de la programo eble estas funkcio nomo (ĉeno) en la kunteksto de: rekoni kaj plenumi - estas de la dinamika programado orientita al celoj, kiam la strukturo, funkcioj, PHP regulaj esprimoj estas uzataj rekte por fari decidojn. Trovita la simbolo "turnoj", tio estas, por oni determinas kion fari sur la loko en kiu ĝi estas trovita, kaj la vojo ĝi estas, "li opinias tion" necesas.

Serĉi karaktero / linion - ne tia simpla ekzerco, kaj la pli da informo, la pli klara des pli bone. Ne estas ĉiam necesa por trovi la dek plej bonaj en manĝaĵprezoj, elektu bongustega receptoj naskiĝtago kuko, aŭ determini la entreprenisto por la falsa plafono.

Ofte estas necese optimumigi la simpla algoritmoj ne estas simpla aritmetiko informoj aŭ en malfacilaj kondiĉoj, kiam la deziratan karakteron elekteblaj datumbazo, kaj la linio en kiu necesas trovi - cent lokoj. La prezo estas egala por elekti karakteron, post kiam la specimeno datumbazo, kaj la prezo de kie serĉi - serĉo tempo fifama centoj de lokoj.

Lone simbolo - ĝi ne estas frazo, kaj ne malmultaj frazoj, li povus esti ie ajn kaj esti tiel malgrandaj kiel dezirite. Kiel determini kio estis trovita estas la deziratan?

Ekzemplo: serĉado de prezoj

Nur trovi la tekston "$" simbolo - iomete. Kontrolu, ke ĝi alfrontas kelkajn, ne ĉiam sufiĉas. Se vi provizis punkton aŭ numeron antaŭ la simbolo "$" estas garantio, ke la prezoj ĉe kiu la monaj simboloj estas antaŭen ne estos prenita en rakontas. Ekzistas ankaŭ preterlasis la prezo, kiu ĝenerale ne estas specifita valuto, sed sur la paĝo estas la eksplicita instrukcioj.

Ĝenerale, la solvo de la problemo en la kutima maniero ŝveligi preter rekono algoritmo kaj temporaba. Dume, uzante regula esprimo, la nombro de PHP trovos problemojn.

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

"Rigardu retpoŝto - 2usd;
";
"Trovu retpoŝto - 2u.e.;
";
"Laboro retpoŝto - ue2;
";
"Kontrolu retpoŝton - $ 13", $ aResult);
. '; '. implode ( ',', $ aResult [0]). '
'.

Respondos: "2; 2usd, 2u.e.", Sed ne trovis ion ajn en la linio: "kontroli retpoŝton - $ 13."

Provizante por la ĉeesto de la modelo, antaŭ aŭ malantaŭ la karaktero, Vi povas atingi sukceson rapide en plej kazoj.

$ CContents = preg_match_all ( "/ ([0-9] + ([\ $] | USD | y \ £ \ |. Ue) {1}) | (([$] | USD | y \ £ \. | ue) {1} [0-9] +) / i ";
"Rigardu retpoŝto - 2usd;
";
"Trovu retpoŝto - 2u.e.;
";
"Laboro retpoŝto - ue2;
";
"Kontrolu retpoŝton - $ 13", $ aResult);
. '; '. implode ( ',', $ aResult [0]). '
'.

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

Pri neintencitan logiko

Regula Esprimoj PHP proponojn, kaj ankaŭ aliajn ilojn, sed ne estas necesa por apliki ilin laŭ liaj reguloj aŭ uzi aliajn funkciojn provizitaj minuskla sintakso vojo.

Eblaj antaŭ la komenco de la serĉo postulata por turni al la tabelo, kaj la loko, kie ni serĉu, rompita malsupren en komponantojn laŭ antaŭ kriterioj. Nur kelkajn eksplodas () kaj implode () ofte simpligas kaj akcelas la decido.

Ekzemple, kiel rezulto de prepara laboro formis tabelo de kordoj (datumoj) en la distrikto de kiom da terpomoj kolektis ĉiun vilaĝon: Nekonata ImyaDerevnya kaj volumeno kolektita, kaj se la lando kuras plurajn kompaniojn en tabelo de kordoj estas ImyaDerevnya.ImyaPredpriyatie kaj valoron per "; « ktp ĉiuj entreprenoj. Kalkuli la tuta kvanto kolektitaj en ĉi tiu kazo ne estas ebla, sed se vi faros impode ( ";", $ aResult), estos longa linio, en kiu la paro - ImyaDerevnya / ImyaDerevnya.ImyaPredpriyatie - kolekto de grandeco - estos transdonita pere de la ";". Ĉu inversa en la rezultanta, eksplodas ( ";", $ aResult) - tabelo de cxiuj, kiu kolektis kaj kiel estas kolektitaj, kaj tiam forigante la linioj de ĉiuj ne-nombra karakteroj, ni havas nur nombroj, la sumo de kiu estas la totala volumo kolektitaj.

En ĉi tiu ekzemplo, la regula esprimo en PHP permesas ne rigardi tro da, ili estas facilaj kaj malaltekosta eltiraĵo la deziratan nombra valorojn. Rapide kaj efike, negrave kiom longe ĝi eble estas la nomoj de la vilaĝoj kaj entreprenoj. Tiu solvo ne ideala, sed ĝi montras, ke ne ĉiam sekvas la regulojn devus esti. Ofte eblas atingi la dezirita en nekutima maniero.

Abstraktado de la teknika flanko, la kodado

La sintakso de la algoritmo ne diras kiel ĝi aspektas en realo. Tamen, provizante la sama kodado de la paĝo, kaj vicoj skripto (kiu serĉis en kiu la bildoj) povas mergi en la problemo estas lia teknikaj aspektoj.

Oni devas ne nur scii kion serĉi, sed kie fari ĝin, kiam, kiom, kion ŝanĝi kaj kiel. Formale PHP regulaj esprimoj ekzekutita kiel kompleta kompleta aperis mekanismo de ĝia propra, sed por multaj kialoj, la efektivigo de lia kolegoj en multaj lingvoj malsamaj. Kiel ĝenerala regulo, antaŭ ol movi aparta ŝablono en aparta ilo medion por specifa tasko, necesas realigi altkvalitaj adapto, kontrolu por ĉiuj eblaj ebloj por la fonto datumoj.

Eĉ se vi uzas vian propran sperton evoluantaj en PHP, regulaj esprimoj, ekzemploj, ŝablonoj kaj dezajno postulas zorga kontrolanta. Dinamike ŝanĝas la lingvon funcionalidad, sintakso kaj ekzekuto.

La strukturo kaj enhavo de ŝablono

Kio antaŭe estis skribita en la formo de kombinaĵo de serĉo funkcioj, Conditionals, anstataŭigo operacioj, insert, forigi, estas ĉeno de karakteroj laŭ certaj reguloj - regula esprimo ŝablono. Fakte, signifa kvanto estas kodita en certa maniero kaj ekzekutita de specifaj reguloj.

Kiel estas neeble fari ajnan depuración lingvo operatoro, vi ne povas elpurigi regula esprimo padrono, tiu procezo povas nur imiti. Kiel ĝenerala regulo adoptita versio: verkoj - ne funkcias. La sintakso estas tre simpla, kvankam lia percepto, precipe en la komenco, estas tre malfacila.

Ekzemplo de simpla esprimo

En simpla personigo, la ŝablono egalas la kordo:

$ CContents = preg_match ( "/ asdf / i", "asdf", $ aResult). '; '. implode ( ',', $ aResult).

La rezulto estos "1; asdf", ĉar la funkcio kompletigas lian operacion ĉe la unua renkontita trafa ŝablono. La rezulto estos la sama, se ni rigardas linio "aaaasdf" en linio "zzzasdfvvv". Se vi donas la unua kaj / aŭ lasta karaktero, la rezulto estus klara:

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

La rezulto estos: 1; asdf1; asdf.

La simboloj "*" kaj "$" indikas kie komenci kaj fini ŝablono. Rezulto preg_match funkcio - la kvanto de alumetoj, ĝi povas esti 0, 1, aŭ falsa, se eraro estas detektita. La tria eblo - tabelo - metitaj nur trovita elemento. En la kazo de uzi preg_match_all funkcio () serĉante daŭre Fine linio.

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

rezulto:

1; asdf
3; asdf, asdf, asdf.

Se vi ne uzas specialajn instrukciojn, ĉiu karaktero difinas kaj ĝia loko, sendepende de la linio kodigon kaj ŝablono kodigo. La programisto devas certigi ke la kodado de ĉi tiuj elementoj estis korekta rilate al unu la alian kaj kodado paĝo.

PHP funkcioj por labori kun regulaj esprimoj

Regulaj esprimoj por PHP reprezentas signoĉeno registrita en certa maniero. Kutime, por analogio kun aliaj programlingvoj, estas priskribitaj en la simbolojn "/" ... "/" kaj metis en citilojn, vi povas uzi sola aŭ duobla funkcio de la algoritmo.

La ĉefa funkcio php preg matĉo regulajn esprimojn uzas ambaŭ mastro matĉo kaj haltas ĝin ĉe la unua loko, varianto ĝia kun sufikso _all trovas ĉiuj matĉoj, kaj eligas la tabelo de tio. Funkcio preg anstataŭi anstataŭas unu la kongruas al ŝablono, povas labori kun sensilo, permesante serĉo dezajno kaj plenumi anstataŭigo de diversaj ebloj.

Interesaj ebloj por labori kun regulaj esprimoj povas disvolvi uzante preg_replace_callback funkcio kiu prenas neniun anstataŭteksto, kaj la nomo de la funkcio, kiu efektivigos tian anstataŭigo. Krom la praktika valoro vi povas apliki mekanismojn kontrolu skemon, ke la disvolviĝo kaj depuración de la lasta ludas signifan rolon.

Medio de regulaj esprimoj

Ekde hiperteksta lingvoj estas formaligita informon al pli granda mezuro estas la starta materialo. Disvolvis grandan nombron da ŝablonoj kaj dezajnoj kiuj permesas procesi grandajn kvantojn de datumoj efike. Signifa porcio de ĉi tiu laboro estas farita mekanismoj konstruita en diversaj enhavo mastrumado sistemoj (CMS).

Ne surprize, multaj CMS fariĝis fakta normoj por konstruado ejoj, kaj estante akompanita fare de la (ĝisdatigita) programaro kompanioj, ili ne faras ĝin necese realigi la disvolviĝo de ŝablonoj sur ĝia propra. Tamen, ekster tia sistemoj havas sperton kun regulaj esprimoj estas tre utila.

Regulaj esprimoj kaj la realaj informoj

Grava areo de apliko de regulaj esprimoj en PHP bibliotekoj formis la alveno PHPOffice. Laboro kun dokumentojn, kalkultabelojn kaj havis ĉiam grava kaj OOXML normo eblas ne nur al desmantelar la reala dokumentojn, sed ankaŭ formi sian programon.

Danke al la disvolviĝo de hiperteksta PHP lingvoj aparte, ekzistas reala ŝanco por aŭtomatigi la "produktado" de dokumentoj "norma formo", ekzemple, fakturoj por pago, raportoj, negoco planoj, kaj aliaj informoj objektoj, la strukturo kaj la enhavo estas vere cedema al formaligo kaj aŭtomatigo.

Kunlige kun la aplikon por priskribi la lingvon OOXML disvolviĝo procezo de regulaj esprimoj estas sufiĉe malsama de la tradicia laborista kun markado lingvoj HTML kaj CSS en la unua loko. La efektiva dokumento, krom marki kaj krome al la efektiva enhavo havas multajn detalojn. Ekzemple, dokumento kiu estis kreita aŭtomate de la programo, havos fortan kaj preciza enhavo. Document formis aŭ la persono traktita, havos enhavon, estis pentrita super pluralidad de etikedoj. Ajna laboro kun la dokumento kondukas al tio, ke la semántica de eble unu, sed pentrita en malsamaj kvantoj sur malsamaj dezajnoj.

Natura informoj kaj situacio

Homo ĉiam interesis la solvo de la problemo, kiu enscenigis informo kaj, kiel rezulto, la sama informo estos donita. Prezenti la deklaro de la problemo en la formo de dokumento, persono ricevas specifan semantiko, kiu estas en la especificación de fakuloj (amendo, klarigante vortumon, forigi, redakti) ne nur kondukas al diversaj versioj de la dokumento, sed ankaŭ al liaj versioj kun malsama enhavo.

Aparte, la tasko metita per la frazo "Solvu kvadrataj uranenie" post redaktado aspektos tiel: "Por solvi kvadrata ekvacio." Se en komenco la unua eraro estis korektita, kaj poste la dua, poste la natura informoj en OOXML stilo povus aspekti: "[solvita] [] [kvadrato] [e] [] [gajan] [b] [nenie]", sed tiu ne garantii, ke tio estas la tasko aperos en la etikedoj OOXML (krampoj emular krampoj etikedoj).

Kunmeti la informoj povas esti facile post ĉiu tasko la redakta procezo, sed ĉiufoje tiu procedo estos realigita per diversaj algoritmoj. Regulaj esprimoj, kiel speco de ilo de formaligo de informo problemoj iĝis, en efiko, marŝante vojetoj de la formala strukturoj de hipertekstaj al la natura informon.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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