Redni izrazi (PHP). PHP: regularni izrazi, primeri

Kako velik in raznolik je svet informacij, kakor hitro se širi in razvija. Vsaka odločitev je le trenutek v splošnem procesu gibanja. Znanje in izkušnje omogočajo razumevanje procesa doseganja cilja, vendar nikoli - ne rezultat njegovega doseganja. Vprašljivo je, ali bomo lahko v bližnji prihodnosti sploh govorili o izidu, vendar je zelo pomembno, da je proces prizadevanja za to pomemben in objektivno potreben proces. "Želja in /ali velik denar" ne ustvarjata algoritma, ki je sposoben nekaj naravnega in "svobodnega" s strani osebe, še posebej, če ne razmišlja o tem, kaj točno dela. V vsakem položaju informacijske naloge je vsaj ena bela lisa, toda za njo, ponavadi, takoj, so vidne druge čiste točke in ni nujno, da so vse bele rože.


Internetna tehnologija je močno poenostavila dostop do informacij, toda vprašanje - kako naložiti želenemu želenemu - ni poenostavljeno, temveč pridobilo nove količine dela. Čeprav regularni izrazi v prostoru PHP očitno niso izčrpani, so pomemben korak naprej.

Enostavne funkcije + algoritem = predloga

Ponudba regularnih izrazov bistveno zmanjša vsebino algoritma, vendar običajne funkcije iskanja /zamenjave in algoritmi najdene obdelave niso izgubili pomena. Nove ideje ne sporočajo informacijske revolucije. Največ, na kar lahko računamo, je kompaktna koda in rast sposobnosti razvijalca, da pravilno oblikuje iskalno poizvedbo.
Treba je vedeti inuporabljajte regularne izraze v PHP-ju. Prepričljivi primeri in učinkovita. Vendar je treba zavedati, da se je s prihodom novega iskalnega mehanizma težišče preselilo v predlogo - nekakšen mehanizem, čeprav v bistvu nadomešča niz preprostih funkcij iskanja, pogojev, ciklov in drugih operaterjev.


Mati:
  • kakovostno in moderno orodje je dobro;
  • je pomembno gledati in uporabljati izkušnje s kolegija;
  • združevanje resnične realnosti in virtualnih idej je jamstvo za uspeh.
  • Doseganje znanja, kot je bilo potrebno razumeti nalogo, jo rešiti, ima pogosto večji pomen kot konkreten rezultat. Redne fraze v PHP so predstavljene z več funkcijami v sintaksi jezika in številnimi uporabnimi primeri na internetu. Glede na specifiko sintakse jezika so možnosti uporabe omejene le z domišljijo razvijalca, vendar je treba upoštevati, da vse predloge ne bodo delovale. S pomočjo PHP preverjanja regularnih izrazov je bistvenega pomena.

    Preprosto iskanje znakov (vrstice)

    Znak ni vedno en bajt in pogosto ima simbol kot osnovni signal natančen pomen. Kodiranje definira vidne znake v kodi na različne načine. Simbol ima več možnosti: "$" = "USD" = ".e." - to je natančen pomen, da je nekaj drugega, vendar ne nujno blizu, povezano z valuto. Točen pomen pa je lahko v spremenljivki PHP, ki se vedno začne s simbolom "$", vendar se ne more začeti z "USD" in "in.".
    V programih je lahko znak ime funkcije (niza) v kontekstu: prepoznati in izvršiti - je iz dinamične domeneobjektno usmerjeno programiranje, ko PHP neposredno uporablja konstrukte, funkcije, regularne izraze za odločanje. Ugotovljen simbol "je izpolnjen", to pomeni, da določa, kaj je treba narediti v kraju, kjer je bil najden, in način, kako "misli", je potreben.
    Preprosto iskanje znaka /niza ni preprost poklic, temveč bolj v simbolu informacij, tem bolje. Ni vedno treba najti ducat najboljših cen hrane, izbrati okusne recepte za praznično torto ali se odločiti z izvajalcem na zgibni strop.
    Pogosto je treba optimizirati preproste algoritme, ki niso enostavne informacije ali v težkih pogojih, ko je treba iz baze podatkov izbrati želeni znak in črto, v kateri jo je treba najti - na stotinah mest. V tem primeru je cena simbola enaka vzorčnemu času iz baze podatkov in ceni kje iskati - čas iskanja zloglasnih stotin mest. Samoten simbol ni stavek ali nekaj stavkov, lahko je kjerkoli in je poljubno majhen. Kako določiti, kaj točno je potrebno?

    Primer: iskanje cen

    Preprosto iskanje simbola $ v besedilu ni dovolj. Ni vedno dovolj preveriti, ali je številka pred njo. Če predvidite točko ali številko pred simbolom "$", je to zagotovilo, da se cene, pri katerih so denarni simboli pred nami, ne bodo upoštevale. Prav tako bodo zamujene cene, ki ne navajajo valute, ampak na strani je navedena.
    Rešitev tega problema običajno pretirava algoritem do nepriznavanja in bo trajalaveliko časa. Medtem, z uporabo regularnega izraza, število PHP ne bo našlo nobenega problema. $ cContents = preg_match_all ("/[0-9] + ([$] | usd | ue | ue) {1} /i"; poglej e-pošto - 2usd; ";
    najdi e -mail - 2. ";
    " delovna e-pošta - ye2; ";
    " preverjanje e-pošte - $ 13 "; $ aResult;);
    . '; . implode (',', $ aResult ). ''. Odgovoril bo: "2; 2usd, 2u.e.", vendar ne bo našel ničesar v vrstici: "preverite e-pošto - $ 13". Z predvidevanjem prisotnosti simbola na sprednji ali zadnji strani v predlogu lahko hitro dosežete cilj v veliki večini primerov. $ cContents = preg_match_all ("/([0-9] + ([$] | usd | ue | ue) {1}) | (([$] | usd | ue | ue) {1 } [0-9] +) /i ";
    " poglej e-pošto - 2usd; ";
    " poišči e-pošto - 2ou. ";
    " delovno e-pošto - ue2; ";
    " preverite e-pošto - $ 13 "; $ aResult;);
    . '; . implode (',', $ aResult ). ''.
    Rezultat: "4; 2usd, 2u.e., ue2 $ 13".

    Ne glede na logiko

    PHP ponuja, tako kot druga orodja, tudi PHP, vendar jih ni treba uporabiti v skladu s svojimi pravili ali uporabljati druge nizovne funkcije v predvideni skladnji. Pred začetkom iskanja pretvorite želeno v matriko in kraj, kjer bo izvedeno iskanje, razdeljeno na komponente po prejšnjem kriteriju. Preprost par funkcij eksplodira () in implode () pogosto poenostavi in ​​pospeši rešitev.
    Na primer, kot rezultat prejšnjega dela je bila na območju oblikovana vrsta vrst (podatkov) o tem, koliko krompirja je vsaka vasa zbrala: ime vasi in zbrani volumen je označeno, in če je v vasi več podjetij, potem je vrstica mape NameDome.Name in value skozi ";" in tako za vsa podjetja. Izračunajte skupni znesek, ki ste ga zbrali v tem primeru ne bo mogoče, če pa naredite impode (";", $ aResult), bo ena dolga vrstica v katerem paru -Ime domene /ime Ime.ime Ime - Zbrani obseg - bo prikazano v polju ";". Ko naredite obratno fotografijo, eksplodirate (";", $ aResult) - niz vseh, ki ste jih zbrali in koliko je zbral, nato pa odstranite vse ne-števne znake iz vrstic, imamo samo številke, katerih vsota bo skupni volumen zbranih. V tem primeru vam regularni izrazi v PHP-ju omogočajo, da sploh ne izgledate ekstra, preprosto in cenovno ugodno izvlečete zahtevane številske vrednosti. Hitro in učinkovito, ne glede na to, kako dolgo so bila imena vasi in podjetja. Ta rešitev ni idealna, vendar kaže, da ni vedno potrebno upoštevati pravila. Pogosto lahko dosežete želeni nenavaden način.

    Povzeto s tehnične strani, iz kodiranja

    Sintaksa algoritma ne določa, kako izgleda. Ampak, pod pogojem, da enako kodiranje strani, skripta in nizov (ki se išče in v katerem se izvaja iskanje), se lahko potopite v naloge, ki presegajo njegovo tehnično stran.
    Ne samo, da moramo vedeti, kaj iskati, ampak tudi kje, kje, v kakšni količini, kaj spremeniti in kako. Formalno regularni izrazi PHP se izvajajo kot popoln lastni mehanizem, vendar je izvajanje številnih analogov v več jezikih različno. Kot splošno pravilo je treba pred premikanjem določene predloge v eno ali drugo orodje za reševanje določene naloge izvesti kvalitativno prilagoditev, da se opravi preverjanje vseh možnih variant izhodnih podatkov.
    Tudi če uporabljate lastne razvojne izkušnje v PHP, rednoizrazi, primeri, vzorci in načrti zahtevajo natančen pregled. Funkcionalni jezik, skladnja in okolje izvedbe se dinamično spreminjajo.

    Struktura in vsebina predloge

    Kar je bilo prej napisano v obliki kombinacije funkcij iskanja, pogojnih operaterjev, zamenjave, vstavljanja, brisanja, je sestavljeno iz ene vrstice znakov z določenimi pravili - vzorcem regularnega izraza. Dejansko se znaten znesek kodira na strogo določen način in se izvaja v skladu s posebnimi pravili. Tako kot ne morete storiti za odpravljanje napak katerega koli jezikovnega operaterja, ne morete narediti razhroščevanja vzorca regularnega izraza, ta proces se lahko samo posnema. Splošno pravilo je različica: dela - ne deluje. Sintaksa je zelo preprosta, čeprav je njeno zaznavanje, še posebej na začetku dela, zelo težko.

    Primer preprostega izraza

    V preprosti različici predlogo sovpada s črto: $ cContents = preg_match ("/asdf /i", "asdf", $ aResult). '; . implode (',', $ aResult). Rezultat bo "1; asdf", ker funkcija konča svoje delo pri prvem ujemanju vzorca. Rezultat bo enak, če pogledate v vrstico "aaaasdf" in v vrstici "zzzasdfvvv". Če podate prvi in ​​/ali zadnji znak, bo rezultat nedvoumen: $ cContents = preg_match ("/^ asdf /i", "asdf", $ aResult). '; . implode (',', $ aResult). '';
    $ cContents. = Preg_match ("/asdf $ /", "asdf", $ aResult). '; . implode (',', $ aResult). ''. Rezultat bo: 1; asdf1; asdf Simboli "^" in "$" označujejo, katera predloga se začne in konča. Rezultat funkcije preg_match je število zadetkov, lahko je 0 ali false, če je zaznana napaka. V tretjem parametru, matriki, je postavljen en sam najdeni element. V tem primeruz uporabo funkcije preg_match_all () se iskanje nadaljuje do konca vrstice. $ cContents = preg_match ("/asdf /i", "asdf123asdf456asdf789", $ aResult). '; . implode (',', $ aResult). '';
    $ cContents. = Preg_match_all ("/asdf /i", "asdf123asdf456asdf789", $ aResult). '; . implode (',', $ aResult ). ''. Rezultat: 1; asdf
    3; asdf, asdf, asdf. Če ne uporabljate posebnih navodil, se vsak znak definira sam in svoje mesto, ne glede na kodiranje vrstice in kodiranje predloge. Programer mora zagotoviti, da je kodiranje teh elementov pravilno glede na drug drugega in kodiranje strani.

    Funkcije PHP za regularne izraze

    Redni izrazi v PHP so niz znakov, napisanih na določen način. Značilno po analogiji z drugimi programskimi jeziki so zapisani v znakih "/" "/" in so postavljeni v narekovaje, odvisno od algoritma, lahko uporabite eno in dvojno. Glavna funkcija php preg tekmovanja uporablja regularne izraze kot naključje predloge in se ustavi, ko se prvič zadrži, njegova varianta s končnico _all išče vse tekme in izdaja takšne matrike. Funkcija prednastavitve zamenja vsako najdeno ujemanje vzorcev, lahko upravlja z nizi, kar vam omogoča, da načrtujete iskanje in izvedete zamenjavo za številne možnosti. Zanimive možnosti za delo z regularnimi izrazi lahko razvijemo s funkcijo preg_replace_callback, ki ne sprejema besedila, ki ga je treba zamenjati, in ime funkcije, ki bo izvedla zamenjavo. Poleg praktične vrednosti je mogoče izvajati mehanizme za preverjanje predlog, ki igrajo pomembno vlogo pri razvoju in vzpostavitvi slednjih.

    Obseg regularnih izrazov

    Od leta 2005. \ THipertekstni jeziki predstavljajo formalizirane informacije, v večji meri so izvorni material. Za učinkovito obdelavo velikih količin informacij je bilo razvitih veliko število predlog in modelov. Večino tega dela opravljajo mehanizmi, vgrajeni v različne sisteme upravljanja lokacij (CMS). Ni presenetljivo, da so mnogi CMS-i postali de facto standardi za gradbišča, in ker jih razvijalci sponzorirajo (posodabljajo), niso nujno sami razvijati predlog. Vendar pa je zunaj takih sistemov zelo koristno imeti izkušnje z regularnimi izrazi.

    Regularni izrazi in realne informacije

    Pomembno področje uporabe regularnih izrazov v PHP je pojav PHPOffice knjižnic. Delo z dokumenti in preglednicami je vedno majhno in pomembno, standard OOXML pa je omogočil ne samo razstavljanje resničnih dokumentov, temveč tudi njihovo programsko oblikovanje. Zahvaljujoč razvoju označevalnih jezikov in PHP je obstajala prava priložnost za avtomatizacijo "proizvodnje" standardnih dokumentov, kot so zaračunavanje, poročila, poslovni načrti in drugi informacijski objekti, katerih struktura in vsebina sta dejansko predmet formalizacije in avtomatizacije. . Zaradi uporabe postopka opisa jezika OOXML je razvoj regularnih izrazov bistveno drugačen od tradicionalnega dela z označevalnimi jeziki HTML in CSS. Pravi dokument, poleg označbe in poleg dejanske vsebine, ima tudi veliko podrobnosti. Na primer, dokument, ki ga program ustvari samodejno, boimajo strog in natančen pomen. Dokument, ki ga oblikuje oseba, ne glede na to, ali je obdelan, ima vsebino, naslikano v niz oznak. Vsako delo z dokumentom vodi k dejstvu, da lahko njegova semantika ostane ena, a je pobarvana znotraj z različnim številom različnih modelov.

    Naravne informacije in razmere

    Oseba je vedno zainteresirana za rešitev problema, katerega formulacija je informacija, in zato bodo zagotovljene tudi informacije. Predstavitev formulacije naloge v obliki dokumenta, oseba prejme določeno semantiko, ki med izpopolnjevanjem s strani strokovnjakov (spreminjanje, pojasnjevanje besedila, brisanje, urejanje) vodi ne le do različnih možnosti enega dokumenta, ampak tudi do njegovih različic z različno vsebino. Še posebej, naloga, ki jo stavek "Rešite kvadratne ovire", po urejanju ne bo videti tako: "Rešite kvadratno enačbo." Če je bila prva napaka popravljena in nato druga, potem lahko naravne informacije v slogu OOXML izgledajo tako: "[Resolve] [] [square] [e] [] [hurray] [in] [name]", vendar sploh ni Zagotovilo, da bo to točno izgledalo v OOXML oznakah (oglati oklepaji emulirajo oklepaje oznak). Po vsakem postopku urejanja naloge je enostavno zbrati informacije, vendar pa se bo vsakič ta postopek izvajal po različnih algoritmih. Redni izrazi, kot nekakšno orodje za formaliziranje informacijskih nalog, so v bistvu postali pot od formalnih hipertekstualnih struktur k naravnim informacijam.

    Sorodne publikacije