DatorerProgrammering

Reguljära uttryck (PHP). PHP: reguljära uttryck exempel

Hur stort och skiftande värld av information, lika snabbt, expanderar och utvecklar. Varje beslut - bara en punkt i den övergripande processen rörelse. Kunskap och erfarenhet gör det möjligt att förstå processen för att uppnå målet, men aldrig - inte ett resultat av dess landvinningar. Det är tveksamt om vi kan tala inom överskådlig framtid på resultatet, men det är viktigt att processen för att sträva efter det är en betydande och objektivt nödvändig process.

"Lust och / eller en massa pengar" inte skapar en algoritm som kan det, och naturligtvis "fri" man gör, speciellt när han inte tänka på vad han gjorde. I varje situation informationsproblemet har åtminstone en blind fläck, men för honom, vanligtvis omedelbart, andra rena fläckar är synliga, och inte nödvändigtvis att de är alla vita blommor.

Internet-teknik har förenklat tillgången till information, men frågan är - hur man sätter på att ha den önskade - inte förenklas, och förvärvade nya "volym" arbete. Och även om PHP reguljära uttryck gap uppenbarligen inte slut, de är ett stort steg framåt.

Enkla funktioner + algoritm = mönster

PHP algoritm som erbjuder reguljära uttryck, minskar avsevärt innehållet, men de vanliga Sökfunktioner / utbyte och bearbetningsalgoritmer fann inte förlorat sin betydelse. Nya idéer inte förebåda informationsrevolutionen. Det mesta som kan förväntas - kompakt kod och öka utvecklaren förmåga att formulera en sökfråga korrekt.

Du bör känna till och tillämpa på PHP reguljära uttryck. Exempel övertygande och effektiva. Men det bör ge rapporten att med tillkomsten av en ny sökmotor, tyngdpunkten förskjutits till mönster - ett slags mekanism, men i själva verket ersatts med en uppsättning av enkla sökfunktioner, villkor, slingor, och andra aktörer.

har:

  • kvalitet och modernt verktyg - det är bra;
  • se och använda erfarenheterna från kollegor är frågan;
  • kombinera verklighet och virtuell idé - en garanti för framgång.

Att uppnå kunskap om hur det var nödvändigt att förstå problemet, för att lösa det, är det ofta viktigare än den specifika resultat.

Reguljära uttryck i PHP representeras av ett antal funktioner i språket syntax och en hel del användbara exempel på Internet. På grund av syntax specifika användningsmöjligheter begränsas bara av fantasin hos utvecklaren, men sleuet ha i åtanke att inte alla mallarna kommer att fungera. Använda PHP validering av reguljära uttryck är viktigt.

Enkel sökning tecken (string)

Symbol - det är inte alltid en enda byte, och är ofta en symbol, som ett chip, har en exakt betydelse i tillägg. Kodning specificerar synliga tecknen i koden på olika sätt. Symbolen kan ha flera alternativ: "$" = "USD" = "USD", ... - är den exakta innebörden av att någonstans något, men inte nödvändigtvis nära, på grund av valutan. Emellertid kan den exakta betydelsen ligga i varierande PHP, som alltid börjar med tecknet "$", men kan inte börja med "USD" och "USD".

Symbolen för programmet kan vara ett funktionsnamn (sträng) i samband med: känna igen och uppfylla - det är från den dynamiska objektorienterad programmering, när strukturen, funktioner, PHP reguljära uttryck används direkt för att fatta beslut. Hittade Symbolen "varv", det vill säga genom att själv bestämmer vad som ska göras på den plats där den hittas, och hur det är "säger han anser" nödvändiga.

Sök efter ett tecken / rad - inte så enkel övning, och mer information, desto tydligare desto bättre. Det är inte alltid nödvändigt att hitta de tio bästa i livsmedelspriserna, välj läckra recept tårta, eller för att bestämma entreprenören för undertaket.

Ofta är det nödvändigt att optimera enkla algoritmer är inte enkel aritmetisk information eller under svåra förhållanden, när önskat tecken att välja från en databas och linjen där det är nödvändigt att hitta - hundra platser. Priset motsvarar att välja ett tecken från den tidpunkt då exempeldatabasen, och priset på var du ska leta - söktiden ökända hundratals sajter.

Lone symbol - det är inte en fras, och inte några meningar, han kunde vara var som helst och vara så liten som önskas. Så att avgöra vad fann det önskade?

Exempel: sök efter priser

Bara hitta texten "$" symbol - lite. Kontrollera att det står inför en rad, är det inte alltid tillräckligt. Om du ger en punkt eller nummer innan symbolen "$" är en garanti för att de priser till vilka de monetära symboler är framåt kommer inte att beaktas. Det finns också utelämnas priset, som i allmänhet inte är specificerad valuta, men på sidan är det på uttryckliga instruktioner.

I allmänhet, lösningen av problemet på vanligt sätt blåsa upp bortom igenkänningsalgoritm och tidskrävande. Samtidigt använder ett reguljärt uttryck, kommer antalet PHP hitta några problem.

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

"Titta e-post - 2USD,
";
"Hitta e-post - 2u.e,
.";
"Arbete e-post - UE2,
";
"Kontrollera e-post - $ 13", $ aResult);
. '; '. implodera ( '', $ aResult [0]). '
'.

Svarar: "2; 2USD, 2u.e.", men kunde inte hitta något i raden: "kolla e-post - $ 13."

Att ge för förekomst av mönstret framför eller bakom karaktären, kan du nå framgång snabbt i de flesta fall.

$ CContents = preg_match_all ( "/ ([0-9] + ([\ $] | usd | y \ \ £ |. Ue) {1}) | (([$] | usd | y \ \ £. | ue) {1} [0-9] +) / i ";
"Titta e-post - 2USD,
";
"Hitta e-post - 2u.e,
.";
"Arbete e-post - UE2,
";
"Kontrollera e-post - $ 13", $ aResult);
. '; '. implodera ( '', $ aResult [0]). '
'.

Resultat: "4; 2USD, 2u.e., UE2, $ 13."

Om oavsiktlig logik

Regular Expressions PHP erbjuder, liksom andra verktyg, men det är inte nödvändigt att tillämpa dem i enlighet med sina regler eller använda andra funktioner som gemener syntax sätt.

Möjligt före början av sökningen som krävs för att vända sig till arrayen, och den plats där vi söker, uppdelat i komponenter enligt tidigare kriterier. Bara ett par explodera () och implodera () ofta förenklar och snabbar upp beslutet.

Till exempel, som ett resultat av förarbete bildat en array med strängar (data) i distriktet på hur många potatisar som samlats varje by: Okänd ImyaDerevnya och volym som samlats, och om landet driver flera företag i en rad strängar är ImyaDerevnya.ImyaPredpriyatie och värde via "; " och så vidare alla företag. Beräkna den totala mängden samlas i detta fall inte kommer att vara möjligt, men om du gör impode ( ";", $ aResult), kommer att vara en lång rad, där paret - ImyaDerevnya / ImyaDerevnya.ImyaPredpriyatie - en samling av storlek - kommer att överföras via ";". Gör en omvänd på den resulterande, explodera ( ";", $ aResult) - en samling av allt, som samlas in och hur den samlas in, och sedan genom att ta bort rader från alla icke-numeriska tecken, har vi bara siffror, är summan av vilken den totala volymen samlats.

I det här exemplet tillåter det reguljära uttrycket i PHP inte ser för mycket, de är enkelt och prisvärt extrahera den önskade numeriska värden. Snabbt och effektivt, oavsett hur länge kan det vara namnen på byar och företag. Denna lösning är inte idealiskt, men det visar att inte alltid följer reglerna ska vara. Det är ofta möjligt att uppnå den önskade på ett ovanligt sätt.

Abstrahera från den tekniska sidan, kodningen

Syntaxen av algoritmen inte säga hur det ser ut i verkligheten. Men ger samma kodning på sidan och rader script (som söks som bilderna) kan störta in i problemet är dess tekniska aspekter.

Man måste inte bara veta vad man ska leta efter, men där man gör det, när, hur mycket, vad man ska ändra och hur. Formellt PHP reguljära uttryck som utförs som en komplett fullfjädrad mekanismen för egen hand, men av många skäl, förverkligandet av sina motsvarigheter i många språk annorlunda. Som en allmän regel, innan du flyttar ett särskilt mönster i en särskild verktygsmiljö för en specifik uppgift, är det nödvändigt att utföra högkvalitativ anpassning kontrollera alla möjliga alternativ för källdata.

Även om du använder din egen erfarenhet av utveckling i PHP, reguljära uttryck, exempel, mallar och design kräver noggrann kontroll. Dynamiskt ändra språk funktionalitet, syntax och körning.

Struktur och innehåll av en mall

Det som tidigare skrivit i form av en kombination av sökfunktioner, villkors, utbytesverksamhet, infoga, ta bort, är en teckensträng enligt vissa regler - reguljära uttryck mönster. I själva verket är en betydande mängd kodad på ett visst sätt och utförs av särskilda regler.

Precis som det är omöjligt att göra någon felsökning språk operatör kan du inte felsöka ett reguljärt uttrycksmönster, kan denna process endast efterlikna. Som en allmän regel fastställde version: verk - fungerar inte. Syntaxen är mycket enkel, även om hans uppfattning, speciellt i början, är mycket svårt.

Ett exempel på ett enkelt uttryck

I ett enkelt utförande matchar mallen strängen:

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

Resultatet kommer att vara "1; asdf", eftersom funktionen avslutar sin verksamhet vid den första träffade en matchande mall. Resultatet kommer att vara densamma, om vi tittar på raden "aaaasdf" i linje "zzzasdfvvv". Om du anger den första och / eller sista tecknet, skulle resultatet vara tydlig:

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

Resultatet kommer att vara: 1; asdf1; asdf.

Symbolerna "*" och "$" indikerar var man ska börja och avslutningsmönster. Resultat preg_match funktion - antalet matcher, kan det vara 0, 1, eller falskt, om ett fel upptäcks. Det tredje alternativet - en array - placeras endast funnit elementet. I fallet med att använda preg_match_all funktion () Sök fortsätter till slutet linjen.

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

resultat:

1; asdf
3; asdf, asdf, asdf.

Om du inte använder specialinstruktioner definierar varje tecken själv och sin plats, oavsett linjekodning och mall kodning. Programmeraren måste se till att kodningen av dessa element var korrekta i förhållande till varje sida annan och kodning.

PHP funktioner för att arbeta med reguljära uttryck

Reguljära uttryck för PHP representerar en teckensträng inspelad på ett visst sätt. Vanligtvis, i analogi med andra programmeringsspråk, skrivs de i symbolerna "/" ... "/" och placeras i citattecken kan du använda enkel eller dubbel beroende på algoritmen.

Den huvudsakliga funktionen php preg match reguljära uttryck använder både mönster match och stannar det vid den första platsen, en variant därav med ett suffix _all hittar alla matcher och matar matrisen därav. Funktions preg ersätter ersätter varje match en mall, kan det fungera med arrayer, vilket gör att söka design och utföra utbyte av en mängd olika alternativ.

Intressanta alternativ för att arbeta med reguljära uttryck kan utvecklas med hjälp preg_replace_callback funktion som tar ingen ersättningstexten, och namnet på funktionen, som kommer att utföra en sådan ersättning. Förutom det praktiska värdet kan du implementera mekanismer rutmönster, att utveckling och felsökning av den sista spelar en viktig roll.

Omfattning av reguljära uttryck

Eftersom hyper språk aliserade uppgifter i större utsträckning de är utgångsmaterialet. Utvecklat ett stort antal mallar och mönster som gör det möjligt att bearbeta stora mängder data på ett effektivt sätt. En betydande del av detta arbete utförs mekanismer inbyggda i olika content management system (CMS).

Inte överraskande, många CMS blivit de facto-standarder för byggarbetsplatser, och åtföljs av (uppdaterad) mjukvaruföretag, har de inte gör det nödvändigt att genomföra utvecklingen av mönster på egen hand. Men utanför sådana system har erfarenhet av reguljära uttryck är mycket användbar.

Reguljära uttryck och verklig information

Ett viktigt användningsområde av reguljära uttryck i PHP bibliotek bildade tillkomsten PHPOffice. Arbeta med dokument, kalkylblad, och har alltid haft viktiga och OOXML standard är inte bara möjligt att demontera de faktiska dokument, men också att forma deras program.

Tack vare utvecklingen av hyper och PHP språk i synnerhet finns det en reell möjlighet att automatisera "produktion" av dokument "standardformulär", till exempel, fakturor för betalning, rapporter, affärsplaner och andra informationsobjekt, struktur och innehåll är faktiskt mottagliga för formalisering och automation.

I samband med ansökan för att beskriva utvecklingsprocessen av reguljära uttryck språk OOXML är helt annorlunda från den traditionella arbets med märkspråk HTML och CSS i första hand. Själva dokumentet, förutom märkning och utöver det faktiska innehållet har en hel del detaljer. Till exempel, ett dokument som automatiskt skapades av programmet kommer att ha en stark och korrekt innehåll. Dokumentet bildas eller den person som behandlas, kommer att ha ett innehåll, målades över ett flertal taggar. Allt arbete med dokumentet leder till det faktum att semantiken för det kan vara en, men målade i olika mängder på olika konstruktioner.

Naturlig information och situation

En person alltid intresserade av att lösa problemet, vilket har iscensatt information och som ett resultat kommer samma information ges. Presentera uttalandet av problemet i form av ett dokument, en person får en viss semantik, vilket är i specifikationen av experter (ändring, förtydliga formuleringen, ta bort, redigera) inte bara leder till flera versioner av ett dokument, men också till sina versioner med olika innehåll.

I synnerhet den uppgift som av frasen "Lösa kvadrat uranenie" efter redigering kommer att se ut så här: "För att lösa en andragradsekvation" If har rättats från början det första felet, och sedan den andra, då den naturliga informationen i stil med OOXML kan vara: "[löst] [] [square] [e] [] [jubel] [b] [nenie]", men det betyder inte garantera att detta är uppgiften kommer att visas i taggarna OOXML (parentes emulera fästen taggar).

Att sätta ihop informationen kan lätt efter varje uppgift redigeringen, men varje gång detta förfarande kommer att utföras av olika algoritmer. Reguljära uttryck, som ett slags verktyg för formalisering av informationsproblem har blivit, i själva verket, promenader från den formella strukturer hyper till den naturliga informationen.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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