RekenaarsProgrammering

Gewone uitdrukking (PHP). PHP: gereelde uitdrukkings voorbeelde

Hoe groot en diverse wêreld van inligting, net so vinnig, sit dit uit en ontwikkel. Enige besluit - net 'n punt in die algehele proses van beweging. Kennis en ervaring maak dit moontlik om die proses van die bereiking van die doel te verstaan, maar nooit - nie die gevolg van sy prestasies. Dit is onwaarskynlik dat ons kan praat in die afsienbare toekoms op die resultaat, maar dit is belangrik dat die proses van strewe na dit is 'n belangrike en objektief noodsaaklike proses.

"Desire en / of 'n klomp geld" nie 'n algoritme in staat wat skep, en natuurlik "vry" man doen, veral wanneer hy nie dink oor wat hy gedoen het. In enige situasie die inligting probleem het ten minste een blindekol, maar vir hom, gewoonlik onmiddellik, ander skoon vlekke is sigbaar, en nie noodwendig dat hulle almal wit blomme.

Internet tegnologie het die toegang tot inligting vereenvoudig, maar die vraag is - hoe om aan te trek om die verlangde - nie vereenvoudig, en nuwe "volume" verkry van werk. En hoewel PHP regular expression gaping is duidelik nie uitgeput, hulle is 'n belangrike stap vorentoe.

Eenvoudige funksies + algoritme = patroon

Bied gereelde uitdrukkings, PHP algoritme aansienlik verminder die inhoud, maar die gewone soek funksies / vervanging en verwerking algoritmes gevind dat hul belang nie verlore nie. Nuwe idees nie voorspel die inligting rewolusie. Die meeste wat verwag kan word - kompak kode en die verhoging van die ontwikkelaar die vermoë om 'n soektog korrek te formuleer.

Jy moet weet en te kan toepas op PHP gereelde uitdrukkings. Voorbeelde oortuigend en doeltreffend. Maar dit moet die verslag gee dat met die koms van 'n nuwe soektog, die swaartepunt verskuif na die patroon - 'n soort van meganisme, hoewel dit in werklikheid vervang deur 'n stel van 'n eenvoudige soek funksies, voorwaardes, loops, en ander operateurs.

het:

  • kwaliteit en moderne hulpmiddel - dit is goed,
  • sien en gebruik die ervaring van kollegas is die saak;
  • die kombinasie van die werklikheid en virtuele idee - 'n waarborg van sukses.

Die bereiking van kennis van hoe dit wat nodig is om die probleem te verstaan, om dit op te los was, is dit dikwels belangriker as die spesifieke resultaat.

Gereelde Expressions in PHP word deur 'n aantal funksies in die taal sintaksis en 'n baie nuttige voorbeelde op die Internet. As gevolg van sintaksis spesifieke toepassing opsies is beperk net deur die verbeelding van die ontwikkelaar, maar sleuet in gedagte hou dat nie almal van die templates sal werk. Die gebruik van PHP bekragtiging van gereelde uitdrukkings is noodsaaklik.

Eenvoudige search karakter (string)

Simbool - dit is nie altyd 'n enkele byte, en is dikwels 'n simbool, soos 'n chip, het 'n presiese betekenis benewens. Enkodering spesifiseer die sigbare karakters in die kode anders. Die simbool kan 'n paar opsies: "$" = "dollar" = "dollar", ... - is die presiese betekenis van wat iewers iets, maar nie noodwendig naby, as gevolg van die geldeenheid. Dit kan egter die presiese betekenis lê in veranderlike PHP, wat altyd begin met die karakter "$", maar kan nie begin met "dollar" en "dollar".

Die simbool van die program kan 'n funksie naam (string) in die konteks van wees: herken en te vervul - dit is van die dinamiese objekgeoriënteerde programmering, wanneer die struktuur, funksies, PHP gereelde uitdrukkings direk gebruik word vir die maak van besluite. Gevind dat die simbool "beurte", dit wil sê deur homself bepaal wat om te doen in die plek waar dit gevind word, en die manier waarop dit is, "het hy ag" nodig.

Soek vir 'n karakter / lyn - nie so 'n eenvoudige oefening, en die meer inligting, hoe duideliker hoe beter. Dit is nie altyd nodig om die tien beste in voedselpryse vind, kies heerlike resepte verjaardagkoek, of om die kontrakteur vir die vals plafon vas te stel.

Dikwels is dit nodig om te optimaliseer die eenvoudige algoritmes is nie eenvoudige rekenkundige inligting of in moeilike omstandighede, wanneer die verlangde karakter te kies uit 'n databasis, en die lyn waarop dit nodig om uit te vind - 'n honderd plekke. Die prys is gelykstaande aan 'n karakter uit die tyd van die monster databasis, en die prys van waar om te kyk kies - soek tyd berugte honderde webwerwe.

Lone simbool - dit is nie 'n frase, en nie 'n paar sinne, kan hy enige plek wees en so klein as jy wil. Hoe om te bepaal wat gevind is word die verlangde?

Voorbeeld: soek vir pryse

vind net die teks "$" simbool - 'n bietjie. Maak seker dat dit in die gesig staar 'n aantal, dit is nie altyd genoeg nie. As jy 'n punt of 'n aantal voor die simbool "$" is 'n waarborg dat die pryse waarteen die monetêre simbole is wat voorlê nie in ag geneem sal word. Daar is ook weggelaat die prys, wat in die algemeen nie gespesifiseer geldeenheid, maar op die bladsy dit is op eksplisiete instruksies.

In die algemeen is die oplossing van die probleem in die gewone wyse op te blaas onherkenbaar algoritme en tydrowend. Intussen het die gebruik van 'n gewone uitdrukking, die aantal PHP sal geen probleme te vind.

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

"Kyk e-pos - 2usd;
";
"Vind e-pos - 2u.e;
.";
"Werk e-pos - ue2;
";
"Gaan e-pos - $ 13", $ vas 'n resultaat);
. '; '. implode ( ",", $ vas 'n resultaat [0]). '
.

Sal antwoord: "2; 2usd, 2u.e.", maar het iets in die lyn nie vind: "check e-pos - $ 13."

Wat voorsiening maak vir die teenwoordigheid van die patroon voor of agter die karakter, kan jy sukses vinnig te bereik in die meeste gevalle.

$ CContents = preg_match_all ( "/ ([0-9] + ([\ $] | dollar | y \ £ \ |. Ue) {1}) | (([$] | dollar | y \ £ \. | ue) {1} [0-9] +) / i ";
"Kyk e-pos - 2usd;
";
"Vind e-pos - 2u.e;
.";
"Werk e-pos - ue2;
";
"Gaan e-pos - $ 13", $ vas 'n resultaat);
. '; '. implode ( ",", $ vas 'n resultaat [0]). '
.

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

Oor onbedoelde logika

Gereelde Expressions PHP bied, sowel as ander instrumente, maar dit is nie nodig om dit te kan toepas volgens die reëls of gebruik ander funksies voorsien klein sintaksis manier.

Moontlik voor die begin van die search vereis om te draai na die skikking, en die plek waar ons soek, afgebreek in komponente volgens vooraf kriteria. Net 'n paar ontplof () en implode () dikwels vereenvoudig en versnel die besluit.

Byvoorbeeld, as 'n gevolg van voorlopige werk gevorm 'n verskeidenheid van snare (data) in die distrik van hoeveel aartappels ingesamel elke dorp: Unknown ImyaDerevnya en volume afgehaal, en as die land loop verskeie maatskappye in 'n verskeidenheid van snare is ImyaDerevnya.ImyaPredpriyatie en waarde deur "; " en so aan alle ondernemings. Bereken die totale in hierdie geval ingesamel sal nie moontlik wees bedrag, maar as jy impode doen ( ";", $ vas 'n resultaat), sal 'n lang lyn, waarin die twee wees - ImyaDerevnya / ImyaDerevnya.ImyaPredpriyatie - 'n versameling van grootte - via sal oorgedra word die ",". Doen 'n omgekeerde op die gevolglike, ontplof ( ";", $ vas 'n resultaat) - 'n verskeidenheid van almal, wat ingesamel is en hoe dit ingesamel, en dan deur die verwydering van die lyne van alle nie-numeriese karakters, ons het net nommers, die bedrag van wat is die totale volume ingesamel.

In hierdie voorbeeld, die gewone uitdrukking in PHP toelaat om nie te veel kyk, dit is maklik en bekostigbaar uittreksel die gewenste numeriese waardes. Vinnig en doeltreffend, maak nie saak hoe lank dit kan wees om die name van die dorpe en besighede. Hierdie oplossing is nie ideaal, maar dit blyk dat dit nie altyd volg die reëls moet wees. Dit is dikwels moontlik om die gewenste in 'n ongewone manier te bereik.

Abstrahering van die tegniese kant, die encoding

Die sintaksis van die algoritme nie sê hoe dit lyk in die werklikheid. Maar die verskaffing van dieselfde enkodering van die bladsy, en rye script (wat verlang word waarin die beelde) kan duik in die probleem is sy tegniese aspekte.

'N Mens moet nie net weet wat om te kyk vir, maar waar om dit te doen, wanneer, hoeveel, wat om te verander en hoe. Formeel PHP gereelde uitdrukkings uitgevoer as 'n volle funksionaliteit meganisme van sy eie, maar vir baie redes, die verwesenliking van sy eweknieë in baie tale anders. As 'n algemene reël, voordat jy 'n bepaalde patroon in 'n bepaalde instrument omgewing vir 'n spesifieke taak te beweeg, is dit nodig om uit te voer 'n hoë-gehalte aanpassing, kyk vir al die moontlike opsies vir die bron data.

Selfs as jy jou eie ervaring in die ontwikkeling in PHP gebruik, gereelde uitdrukkings, voorbeelde, templates en ontwerp vereis versigtige nagaan. Dinamiese verandering van die taal funksies, sintaksis en runtime.

Die struktuur en inhoud van 'n sjabloon

Wat is voorheen geskryf in die vorm van 'n kombinasie van soek funksies, conditionals, vervanging bedrywighede, insetsel, verwyder, is 'n string karakters volgens sekere reëls - gewone uitdrukking patroon. Trouens, 'n beduidende hoeveelheid geïnkripteer in 'n sekere manier en uitgevoer deur spesifieke reëls.

Net soos dit onmoontlik is om enige debugging taal operateur doen, kan jy nie ontfout 'n gewone uitdrukking patroon, kan hierdie proses net navolg. As 'n algemene reël weergawe aangeneem: werke - nie werk nie. Die sintaksis is baie eenvoudig, hoewel sy persepsie, veral in die begin, is baie moeilik.

'N Voorbeeld van 'n eenvoudige uitdrukking

In 'n eenvoudige verpersoonliking, die sjabloon ooreenstem met die string:

$ CContents = preg_match ( "/ asdf / i", "asdf", $ vas 'n resultaat). '; '. implode ( ",", $ vas 'n resultaat).

"; Asdf 1", aangesien die funksie sy operasie voltooi by die eerste 'n bypassende sjabloon ontmoet die gevolg sal wees. Die resultaat sal dieselfde wees, as ons kyk na lyn "aaaasdf" in lyn "zzzasdfvvv". As jy die eerste en / of laaste karakter spesifiseer, sal die resultaat duidelik wees:

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

Die resultaat sal wees: 1; asdf1; asdf.

Die simbole "*" en "$" dui waar om te begin en die einde patroon. Lei preg_match funksie - die aantal wedstryde, kan dit wees 0, 1, of vals, as 'n fout is opgespoor. Die derde opsie - 'n skikking - geplaas net gevind element. In die geval van die gebruik van preg_match_all funksie () soek steeds na die einde lyn.

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

gevolg:

1; asdf
3; asdf, asdf, asdf.

As jy nie spesiale instruksies gebruik, elke karakter definieer homself en sy plek, ongeag van die lynkodering en sjabloon kodering. Die programmeerder moet seker maak dat die enkodering van hierdie elemente korrek was in verhouding tot mekaar en enkodering bladsy.

PHP funksies vir die werk met gereelde uitdrukkings

Gereelde uitdrukkings vir PHP verteenwoordig 'n karakterstring aangeteken in 'n sekere manier. Gewoonlik, deur analogie met ander programmeringstale, dit is beskrywe in die simbole "/" ... "/" en geplaas in aanhalingstekens, jy kan gebruik enkel of dubbel, afhangende van die algoritme.

Die belangrikste funksie PHP Preg wedstryd gereelde uitdrukkings gebruik beide patroon wedstryd en stop dit by die eerste plek, 'n variant daarvan met 'n agtervoegsel _all soek alle wedstryde, en uitgange die skikking daarvan. Funksie Preg vervang vervang elke wedstryd 'n sjabloon, kan dit werk met skikkings, sodat search ontwerp en uit te voer vervanging van 'n verskeidenheid van opsies.

Interessante opsies vir die werk met gereelde uitdrukkings ontwikkel kan word met behulp van preg_replace_callback funksie wat geen plaasvervanger teks neem, en die naam van die funksie, wat so 'n plaasvervanger sal uit te voer. In bykomend tot die praktiese waarde wat jy kan implementeer meganismes kyk patroon, wat die ontwikkeling en ontfouting van die laaste 'n belangrike rol speel.

Omvang van gereelde uitdrukkings

Sedert hiperteks tale geformaliseer inligting om 'n groter mate hulle die beginspan materiaal. Ontwikkel 'n groot aantal van templates en ontwerpe wat toelaat dat groot hoeveelhede data doeltreffend te verwerk. 'N Beduidende gedeelte van hierdie werk verrig meganismes ingebou in verskeie content management stelsels (CMS).

Nie verrassend nie, baie CMS word de facto standaarde vir die bou van webwerwe, en word vergesel deur die (opgedateer) sagteware maatskappye, hulle het nie maak dit nodig om uit te voer die ontwikkeling van patrone op sy eie. Maar buite sulke stelsels het ondervinding met gereelde uitdrukkings is baie nuttig.

Gereelde uitdrukkings en die werklike inligting

'N belangrike gebied van toepassing van gereelde uitdrukkings in PHP biblioteke gevorm die koms PHPOffice. Werk met dokumente, sigblaaie, en het nog altyd 'n belangrike en OOXML standaard is moontlik om nie net die werklike dokumente af te breek nie, maar ook om hul program vorm.

Te danke aan die ontwikkeling van hiperteks en PHP tale in die besonder, is daar 'n ware geleentheid om die "produksie" van dokumente "standaard vorm" outomatiseer, byvoorbeeld, fakture vir betaling, verslae, sakeplanne, en ander inligting voorwerpe, die struktuur en die inhoud is eintlik oop vir formalisering en outomatisering.

In verband met die aansoek om die taal OOXML ontwikkelingsproses van gereelde uitdrukkings beskryf is heel anders as die tradisionele werk met opmaak tale HTML en CSS in die eerste plek. Die werklike dokument, behalwe merk en bykomend tot die werklike inhoud het 'n baie besonderhede. Byvoorbeeld, 'n dokument wat outomaties is geskep deur die program, sal 'n sterk en akkurate inhoud sal hê. Dokument gevorm of die persoon behandel, sal 'n inhoud het, is geverf oor 'n pluraliteit van etikette. Enige werk met die dokument lei tot die feit dat die semantiek van dit een geheel is, maar geverf in verskillende hoeveelhede op verskillende ontwerpe.

Natuurlike inligting en situasie

'N Persoon altyd geïnteresseerd in die oplossing van die probleem, wat inligting het opgevoer en, as gevolg daarvan, sal dieselfde inligting word gegee. Die aanbieding van die verklaring van die probleem in die vorm van 'n dokument, 'n persoon kry 'n spesifieke semantiek, wat in die spesifikasie van kundiges (wysiging, verduidelik bewoording, verwyder, te wysig) nie net lei tot verskeie weergawes van 'n dokument, maar ook om sy weergawes met verskillende inhoud.

In die besonder, die deur die frase stel taak "Los vierkante uranenie" na redigering sal lyk: ". Om 'n kwadratiese vergelyking op te los" As die eerste het die eerste fout is reggestel, en dan die tweede, dan die natuurlike inligting in OOXML styl kan lyk: "[opgelos] [] [vierkante] [e] [] [cheers] [b] [nenie]", maar dit beteken nie waarborg dat dit die taak sal verskyn in die tags OOXML (hakies navolg hakies tags).

Om saam te stel die inligting kan maklik na elke taak die redigering proses, maar elke keer as hierdie proses sal uitgevoer word deur verskeie algoritmes. Gereelde uitdrukkings, as 'n soort van instrument van formalisering van inligting probleme geword het, in werking tree, loop paaie van die formele strukture van hiperteks om die natuurlike inligting.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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