KompjûtersProgramming

Reguliere ekspresje (PHP). PHP: reguliere ekspresjes foarbylden

Hoe grut en ferskaat wrâld fan ynformaasje, krekt sa gau, dat út en ûntwikkelet. Any beslút - mar in punt yn 'e totale proses fan de beweging. Kennis en ûnderfining meitsje it mooglik om te ferstean it proses fan berikken it doel, mar nea - net it resultaat fan syn prestaasjes. It is twijfelachtig dat kinne wy prate op koarte termyn op it resultaat, mar it is wichtich dat it proses fan it stribjen nei it is in wichtige en objektyf nedich proses.

"Desire en / of in protte jild" net meitsje in algoritme steat fan dy, en fansels "frije" minske docht, benammen doe't er net tinke oer wat er die. Yn eltse situaasje de ynformaasje probleem hat op syn minst ien blyn plak, mar foar him, meastal daliks, oaren skjin vlekken binne sichtber, en net needsaaklik dat se binne allegearre wite blommen.

Ynternet technology hat ferienfâldige de tagong ta ynformaasje, mar de fraach is - hoe te setten op hawwende de winske - net ferienfâldige, en krige nije "volume" fan wurk. En hoewol't PHP reguliere ekspresje kleau is dúdlik net wurch, hja binne in wichtige stap foarút.

Ienfâldige funksjes + algoritme = patroan

It oanbieden fan reguliere ekspresjes, PHP algoritme gâns ferleget de ynhâld, mar de wenstige sykje funksjes / ferfanging en ferwurkjen Algorithmen fûn net ferlern harren belang. Nije ideeën net de lêste tiid wytgje de ynformaasje revolúsje. It measte dat kin wurde ferwachte - kompakte koade en it fergrutsjen fan de ûntwikkelders de mooglikheid om te formulearjen in sykfraach korrekt.

Jo moatte kenne en fan tapassing op PHP reguliere útdrukkings. Foarbylden oertsjûgjende en effektyf. Mar it moat jaan it rapport dat mei de komst fan in nije sykmasine, it swiertepunt ferskode nei it patroan - in soarte fan meganisme, hoewol't yn feite ferfongen troch in tal ienfâldige sykje funksjes, betingsten, loops, en oare operators.

hawwe:

  • kwaliteit en moderne ark - it is goed;
  • sjen en brûk de ûnderfining fan kollega is de saak;
  • kombinearjen werklikheid en firtuele idee - in garânsje fan súkses.

Ferwêzentlikjen kennis fan hoe't it wie nedich om te begripen it probleem, op te lossen is, is it faak wichtiger as de spesifike resultaat.

Reguliere ekspresje yn PHP wurde fertsjintwurdige troch in tal funksjes yn de taal syntaksis en in soad brûkbere foarbylden op it ynternet. Fanwegen syntaks spesifike applikaasje opsjes wurde beheind allinnich troch de ferbylding fan de ûntwikkelders, mar sleuet hâld der rekken mei dat net alle fan de sjabloanen wurden wurkje. Mei help fan PHP falidaasje fan de reguliere ekspresjes is essinsjeel.

Simple Search character (tekenrige)

Symboal - dat is net altyd ien byte, en is faak in symboal, as in chip, hat in krekte betsjutting njonken. Kodearring spesifisearret it sichtbere tekens yn 'e koade oars. It symboal kin hawwe ferskate opsjes: "$" = "USD" = "USD", ... - is de krekte betsjutting fan dy earne wat, mar net perfoarst ticht, fanwege de munt. It krekte betsjutting kin lizze yn fariabele PHP, dy't altyd begjint mei it karakter "$", mar kin net begjinne mei "USD" en "USD".

It symboal fan it programma kin in funksje namme (tekenrige) yn it ramt fan: werkenne en ferfoljen - it is út it dynamyske foarwerp-rjochte programmearring, doe't de struktuer, funksjes, PHP reguliere útdrukkings wurde brûkt direkt foar it meitsjen fan besluten. Fûn it symboal "bochten", dat is, troch sels bepaalt wat te dwaan op it plak dêr't it yn fûn, en de wei is it, "hy achtet" nedich.

Sykje in personaazje / line - net sa'n ienfâldige oefening, en de mear ynformaasje, it dúdliker hoe better. It is net altiten nedich is te finen op de tsien bêste yn iten prizen, kies hearlik recipes jierdei taart, of te bepalen de oannimmer foar de falske plafond.

Faak is it nedich om te optimalisearjen fan de ienfâldige algoritmen binne net simpel rekkenboek ynformaasje of yn drege omstannichheden, doe't de winske karakter te kiezen út in databank, en de line dêr't is it nedich te finen - hûndert siden. De priis is gelyk te selektearjen fan in personaazje út de tiid fan de sample databank, en de priis fen dêr't te sjen - sykje tiid beruchte hûnderten siden.

Iensume symboal - it is net in rychje wurden, en net in pear sinnen, hy koe wêze oeral en wurde sa lyts as winske. Hoe om te bepalen wat fûn is de winske?

Foarbyld: sykje foar prizen

Krekt fine de tekst "$" symbol - in bytsje. Kontrolearje dat it stiet foar in getal, it is net altyd genôch. As jo leverje in punt of nûmer foardat it symboal "$" is in garânsje dat de prizen by dêr't de monetêre symboalen binne foarút sil gjin rekken hâlden wurde. Der binne ek weilitten de priis, dy't yn it algemien is net oantsjutte faluta, mar op de side is it op eksplisite ynstruksjes.

Yn it algemien, de oplossing fan it probleem yn 'e wenstige wize blazen fierder erkenning algoritme en tiidslinend. Undertusken, mei help fan in reguliere ekspresje, it oantal PHP sil fine gjin problemen.

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

"Sjoch e-mail - 2usd;
";
"Fyn e-mail - 2u.e.;
";
"Wurk e-mail - ue2;
";
"Kontrolearje e-mail - $ 13", $ aResult);
. '; '. implode ( ',', $ aResult [0]). '
'.

Sil antwurdzje: "2; 2usd, 2u.e.", mar net fine neat yn de line: "check e-mail - $ 13."

It bieden foar de oanwêzigens fan it patroan foar of efter it karakter, kinne jo berikke súkses fluch yn de measte gefallen.

$ CContents = preg_match_all ( "/ ([0-9] + ([\ $] | USD | y \ £ \ |. Ue) {1}) | (([$] | USD | y \ £ \. | ue) {1} [0-9] +) / i ";
"Sjoch e-mail - 2usd;
";
"Fyn e-mail - 2u.e.;
";
"Wurk e-mail - ue2;
";
"Kontrolearje e-mail - $ 13", $ aResult);
. '; '. implode ( ',', $ aResult [0]). '
'.

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

About ûnbedoeld logika

Gewoane Expressions PHP aanbiedingen, lykas ek oare ark, mar it is net nedich om te passen se neffens har regels of brûk oare funksjes foarsjoen lowercase syntaks wei.

Mooglik foar it begjin fan it sykjen nedich om oan 'e rige, en it plak dêr't wy sykje, opdield yn ûnderdielen neffens foarôfgeande kritearia. Mar in pear explode () en implode () faak simplifies en mei faasje op it beslút.

Bygelyks, as gefolch fan foarriedige wurk foarme in rige is fan snaren (gegevens) yn de wyk op hoefolle ierdappels sammele elk doarp: Unknown ImyaDerevnya en folume sammele, en as it lân rint ferskate bedriuwen yn in rige fan snaren is ImyaDerevnya.ImyaPredpriyatie en wearde troch "; " ensafuorthinne alle bedriuwen. Berekkenje de totale bedrach sammele yn dit gefal sil net mooglik, mar as jo dogge impode ( ";", $ aResult), sil ien lange line, dêr't de pear - ImyaDerevnya / ImyaDerevnya.ImyaPredpriyatie - in kolleksje fan de maat - wurdt oerbrocht fia de ";". Doch in omkearde op de ûntstiene, explode ( ";", $ aResult) - in rige is fan alle, dy't sammele en hoe't it is sammele, en dan troch it fuortheljen fan de rigels fan alle net-numeryk tekens, wy hawwe allinne getallen, de som fan dat is de totale folume sammele.

Yn dit foarbyld, de reguliere ekspresje yn PHP steane net te sjen te folle, se binne maklik en betelbere extract de winske numerike wearden. Fluch en effisjint, hoe lang kin it wêze de nammen fan de doarpen en bedriuwen. Dizze oplossing is net ideaal, mar it docht bliken dat net altyd folgje de regels moatte wêze. It is faak mooglik om te kommen ta it winske yn in ûngewoane wize.

Abstracting út de technyske kant, de kodearring

De syntaksis fan it algoritme net sizze hoe sjocht it der yn werklikheid. Lykwols, it bieden fan deselde kodearring fan de side, en rigen script (dat wurdt socht dêr't de ôfbyldings) kin stoute skuon yn it probleem is syn technyske aspekten.

Men moat net allinnich wat te sykjen, mar wêr te dwaan is, doe't, hoefolle, wat te feroarjen en hoe. Formeel Fil reguliere ekspresjes eksekutearre as in folsleine folsleine-featured meganisme fan syn eigen, mar foar in protte redenen, it ta stân bringen fan syn collega yn in protte talen oars. As algemiene regel, foardat jo ferpleatse in bepaalde patroan yn in bepaald stik ark omjouwing foar in spesifike taak, is it nedich om te fieren hege-kwaliteit oanpassing, kontrolearje foar alle mooglike opsjes foar de boarne gegevens.

Ek as jo brûke dyn eigen ûnderfining ûntwikkeljen yn PHP, reguliere útdrukkings, foarbylden, sjabloanen en foarmjouwing freget om soarchfâldich kontrôle. Dynamisch feroaret de taal funksjonaliteit, syntaksis en runtime.

De struktuer en de ynhâld fan in sjabloan

Wat wie earder skreaun yn de foarm fan in kombinaasje fan syk funksjes, conditionals, ferfanging operaasjes, insert, wiskjen, is in string fan karakters neffens bepaalde regels - reguliere ekspresje patroan. Yndie, in wichtige bedrach is kodearre op in bepaalde wize en eksekutearre troch spesifike regels.

Krekt sa't it is ûnmooglik om te dwaan gjin útbrek taal operator, kinne jo net Debug in reguliere útdrukking patroan, dat proses kin allinnich emulate. As algemiene regel adoptearre version: wurken - net wurket. De syntaksis is hiel simpel, hoewol't syn waarnimming, benammen yn it begjin, is tige dreech.

In foarbyld fan in ienfâldige ekspresje

Yn in ienfâldige útfiering, it sjabloan oerienkomt mei de snaar:

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

It resultaat sil wêze "1; asdf", omdat de funksje foltôging har operaasje op 'e earste moete in oerienkommende sjabloan. It resultaat sil itselde, as wy sjogge nei rigel "aaaasdf" yn rigel "zzzasdfvvv". As jo oantsjutte de earste en / of lêste karakter, it resultaat soe wêze dúdlik:

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

It resultaat sil wêze: 1; asdf1; asdf.

De symboalen "*" en "$" jout oan wêr te starten en de ein patroan. Utslach preg_match funksje - it oantal wedstriden, it kin wêze 0, 1, of net wier, as in fout wurdt ûntdutsen. De tredde opsje - in rige is - pleatst allinne fûn elemint. Yn it gefal fan brûkend preg_match_all function () sykje giet oan it ein line.

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

resultaat:

1; asdf
3; asdf, asdf, asdf.

As jo net brûke spesjale ynstruksjes, elk karakter definiearret himsels en syn plak, los fan de line taalkodearjen en Template taalkodearjen yn. De programmeur moat derfoar soargje dat de kodearring fan dizze eleminten wiene korrekt yn relaasje ta elkoar en encoding side.

PHP funksjes foar wurkjen mei reguliere útdrukkings

Reguliere ekspresjes foar PHP fertsjintwurdigje in karakter tekenrige opnommen yn in bepaalde manier. Meastal, troch analogy mei oare programmearring talen, hja steane biskreaun yn 'e symboalen "/" ... "/" en pleatst yn quotation Marks, kinne jo gebrûk meitsje fan inkele of dûbele ôfhinklik fan' e algoritme.

De wichtichste funksje php preg wedstriid reguliere ekspresjes brûkt sawol patroan wedstriid en stoppet him by de earste lokaasje, in fariant dêrfan mei in efterheaksel _all fynt alle wedstriden, en útfiert it array dêrfan. Function preg ferfange ferfangt eltse wedstriid in sjabloan, kin wurkje mei rigen, sadat sykje design en fieren ferfanging fan in ferskaat oan opsjes.

Ynteressante opsjes foar wurkjen mei reguliere ekspresjes kinne wurde ûntwikkele mei help preg_replace_callback funksje, dat nimt gjin ferfangende tekst, en de namme fan de funksje, dy't sil útfiere sa'n ferfanging. Njonken de praktyske wearde kinne jo útfiere meganismen kontrolearje patroan, dat de ûntwikkeling en it neirinnen fan de lêste spilet in wichtige rol.

Berik fan gewoane ekspresjes

Sûnt hypertext talen binne offisjeel fêstlein ynformaasje nei in grutter mjitte se binne it útgongspunt materiaal. Ûntwikkele in grut oantal sjabloanen en ûntwerpen dy't tastean te ferwurkjen grutte bedraggen fan gegevens effisjint. In grut part fan dit wurk wurdt útfierd meganismen boud yn ferskate ynhâld behear systemen (CMS).

Net ferrassend, in protte CMS wurden de facto standert foar it bouwen plakken, en wurdt beselskippe troch de (fernijd) software bedriuwen, sy net meitsje it nedich te fieren út de ûntwikkeling fan de patroanen op syn eigen. Mar, bûten fan sokke systemen hawwe ûnderfining mei reguliere ekspresjes is tige nuttich.

Reguliere útdrukkings en de echte ynformaasje

In wichtich gebiet fan tapassing fan reguliere ekspresjes yn PHP biblioteken foarme de komst PHPOffice. Wurkje mei dokuminten, Tabellenkalkulationen, en hat altyd hie wichtich en OOXML standert is mooglik net allinne te ôfbrutsen de werklike dokuminten, mar ek om foarm te programma.

Mei tank oan 'e ûntwikkeling fan hypertext en PHP talen yn it bysûnder, is der in echte kâns om automate de "productie" fan dokuminten "standert foarm", bygelyks, faktueren foar betelling, ferslaggen, saaklike plannen, en oare ynformaasje objekten, de struktuer en de ynhâld binne eins amenable te formalization en automatisearring.

Yn ferbân mei de applikaasje te beskriuwen de taal OOXML ûntwikkeling proses fan de reguliere ekspresjes is hiel oars út de tradisjonele wurkjende mei opmaak talen HTML en CSS op it earste plak. De eigentlike dokumint, útsein marking en boppedat ta de werklike ynhâld hat in soad details. Bygelyks, in dokumint dat waard makke automatysk troch it programma, sil hawwe in sterke en presys ynhâld. Dokumint foarme of de persoan behannele, sille in ynhâld, waard skildere oer in mearfâldichheid fan tags. Elke wurk mei it dokumint liedt ta it feit dat de semantyk fan it kin wêze ien, mar skildere yn ferskillende bedraggen op ferskillende ûntwerpen.

Natuerlike ynformaasje en situaasje

In persoan altiten ynteressearre yn de oplossing fan it probleem, dat hat opfierd ynformaasje en, as gefolch, deselde ynformaasje sil jûn wurde. Presintearje de ferklearring fan it probleem yn 'e foarm fan in dokumint, in persoan krijt in spesifike semantyk, dy't yn it spesifikaasje fan eksperts (amendemint, ferdúdlikjen wording, wiskjen, bewurkje) net allinne liedt ta meardere ferzjes fan in dokumint, mar ek nei syn ferzjes mei ferskillende ynhâld.

Benammen de taak ynsteld troch de wurden "Solve fjouwerkant uranenie" nei editing sil der sa útsjen: "Om oplosse in kwadratyske fergeliking." As earst de earste flater is ferbettere, en dan de twadde, dan de natuerlike ynformaasje yn OOXML styl kin útsjen: "[oplost] [] [fjouwerkant] [e] [] [cheers] [b] [nenie]", mar dat docht net garandearje dat dit is de taak sil ferskine yn de tags OOXML (heakjes emulate heakjes tags).

Om sette tegearre de ynformaasje kin wêze maklik nei eltse taak it bewurkjen proses, mar elke kear dizze proseduere wurdt útfierd troch ferskate algoritmen. Reguliere ekspresjes, as in soarte fan ark fan formalization fan ynformaasje problemen hawwe wurden, in effekt, kuierpaden út de formele struktueren fan hypertext oan 'e natuerlike ynformaasje.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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