Pravidelné výrazy (PHP). PHP: regulárne výrazy, príklady

Ako veľký a rozmanitý je svet informácií, tak rýchlo, ako sa rozširuje a rozvíja. Každé rozhodnutie je len momentom vo všeobecnom procese pohybu. Znalosti a skúsenosti poskytujú príležitosť pochopiť proces dosiahnutia cieľa, ale nikdy - nie je výsledkom jeho dosiahnutia. Je pochybné, že v blízkej budúcnosti môžeme hovoriť o výsledku vôbec, ale je veľmi dôležité, aby proces snaženia sa o ňu predstavoval podstatný a objektívne potrebný proces. "Túžba a /alebo veľa peňazí" nevytvára algoritmus schopný tohto druhu a "free" človek, zvlášť keď nemyslí na to, čo robí. V každej pozícii informačnej úlohy je aspoň jedno biele miesto, ale po nej sú zvyčajne naraz viditeľné iné čisté miesta a nie je nutné, aby boli všetky biele kvety.


Internetová technológia značne zjednodušila prístup k informáciám, ale otázka - ako uložiť požadované žiaduce - nie zjednodušené, ale získané nové "objemy práce. A zatiaľ čo priestory regulárneho výrazu PHP zjavne nie sú vyčerpané, predstavujú významný krok vpred.

jednoduchý algoritmus funkcie + = šablóna

V pravidelných výrazov, PHP algoritmus výrazne znižuje obsah, ale zvyčajne vyhľadávanie /výmena algoritmy pre spracovanie a zistil, nestratí svoju hodnotu. Nové nápady neznamenajú informačnú revolúciu. Maximálne, na ktoré sa dá počítať, je kompaktný kód a rast schopnosti vývojára správne formulovať vyhľadávací dopyt.
Mal by byť známy apoužívať regulárne výrazy v PHP. Presvedčivé príklady a účinné. Ale človek by si mal uvedomiť, že s príchodom nového vyhľadávacieho mechanizmu sa ťažisko presunulo do šablóny - akýsi mechanizmus, hoci v podstate nahrádza súbor jednoduchých vyhľadávacích funkcií, podmienok, cyklov a iných operátorov.


Matka:
  • Kvalitný a moderný nástroj je dobrý;
  • je dôležité vidieť a využívať skúsenosti zo strany vysokých škôl;
  • kombinácia skutočnej reality a virtuálnych myšlienok je zárukou úspechu.
  • Dosiahnutie vedomostí, pretože bolo potrebné pochopiť úlohu, vyriešiť ju, má často väčší význam ako konkrétny výsledok. Pravidelné frázy v PHP sú reprezentované niekoľkými funkciami v syntaxe jazyka a mnohými užitočnými príkladmi na internete. Vzhľadom na špecifiká syntaxe jazyka sú možnosti použitia obmedzené len predstavivosťou vývojára, ale treba mať na pamäti, že nie všetky šablóny budú fungovať. Prostredníctvom PHP kontroly pravidelných výrazov je nevyhnutné.

    Jednoduché vyhľadávanie znakov (riadkov)

    Znak nie je vždy jeden bajt a symbol, ako elementárny signál, má navyše presný význam. Kódovanie definuje viditeľné znaky v kóde rôznymi spôsobmi. Symbol môže mať niekoľko možností: "$" = "USD" = ".e." - je to presný význam, že niečo iné, ale nie nevyhnutne blízke, súvisí s menou. Avšak presný význam môže spočívať v premennej PHP, ktorá vždy začína symbolom "$", ale nemôže začínať "USD" a "in."
    V programoch môže byť znakom názov funkcie (reťazec) v kontexte: rozpoznať a vykonať - je to z dynamickej doményobjektovo orientované programovanie, keď konštrukty, funkcie, regulárne výrazy používa PHP priamo pre rozhodovanie. Zistil sa "splnený" symbol, to znamená, že určuje, čo treba urobiť na mieste, kde sa našlo, a ako to "to myslí" je potrebné.
    Jednoduché hľadanie znaku /reťazca nie je jednoduché zamestnanie a čím viac v symbole informácií, tým lepšie. Nie vždy je potrebné nájsť tucet najlepších cien jedál, vybrať si chutné recepty na sviatočný koláč alebo sa rozhodnúť s dodávateľom na kĺbovom strope.
    Často je potrebné optimalizovať jednoduché algoritmy nie jednoduché informácie aritmetické alebo v náročných podmienkach, keď sa musí vybrať požadovaný znak z databázy a čiaru, v ktorej sa má nachádzať - na stovkách lokalít. V tomto prípade sa cena symbolu rovná vzorkovanej dobe z databázy a cena, kde sa má pozrieť - čas vyhľadávania známych stoviek lokalít. Osamelý symbol nie je fráza ani niekoľko fráz, môže to byť kdekoľvek a byť ľubovoľne malý. Ako je potrebné určiť, čo presne je potrebné?

    Príklad: cenové vyhľadávanie

    Jednoduché vyhľadanie symbolu $ v texte nestačí. Nie je vždy postačujúce skontrolovať, či je pred ňou postavička. Ak pred symbolom "$" predpovedáte bod alebo číslicu, je to záruka, že ceny, s ktorými sa menové symboly nachádzajú, nebudú zohľadnené. Budú tiež zmeškané ceny, ktoré vôbec neuvádzajú menu, ale na stránke je to údaj.
    Vo všeobecnosti riešenie tohto problému zvyčajne preháňa algoritmus neuznania a bude trvaťveľa času. Medzitým, pomocou regulárneho výrazu, bude počet PHP nájsť žiadny problém. $ CContents = preg_match_all ("/[0-9] + ([$] | usd | cu | vo) {1} /i", "hľadať e-mail - 2usd;"
    "nájsť e -mail - 2u.e; "
    " pracovný e-mail - UE2. "
    " skontrolovať e-maily - 13 $ ", $ aResult);
    . ,; '. implode (',', $ aResult ). ''. Bude reagovať "2; 2usd, 2u.e.", ale nič nenašli v riadku: "skontrolovať e-mail - $ 13." Poskytovanie šablóna symbol obsadenosť prednej alebo zadnej, môžete rýchlo dosiahnuť cieľ vo väčšine prípadov. $ CContents = preg_match_all ("/([0-9] + ([$] | USD | cu | vo) {1}) | (([$] | USD | cu | vo) {1 } [0-9] +) /i "
    " vzhľad e-mailom - 2usd; "
    " nájsť e-mailu - 2u.e; "
    " pracovný e-mail - UE2 "
    " skontrolovať e-maily - 13 $ ", $ aResult);
    . ,; '. implode (',', $ aResult ). ''.
    Výsledok: "4; 2usd, 2u.e., ue2 $ 13".

    podmienená logika

    regulárnych výrazov PHP ponúka, rovnako ako ďalšie nástroje, ale nemusí nutne platiť im podľa jej pravidiel, alebo používať ďalšie funkcie za predpokladu, syntax reťazec nasledovne. Než nájde požadovaný transformovať do poľa, a miesto, kde bude hľadať rozdelené do priečinkov za predchádzajúce kritériá. Jednoduchý pár funkcií exploduje () a implode () často zjednodušuje a urýchľuje riešenie.
    Napríklad, ako je výsledkom predchádzajúcej práce tvoril pole reťazcov (dát) v oblasti, ako veľa zemiakov odoberané každej dedine: YmyaDerevnya poznamenať, a zhromaždí množstvo, a v prípade, že obec má niekoľko podnikov, v riadku pole a je hodnota YmyaDerevnya.YmyaPredpryyatye cez ";" a tak na všetkých podnikoch. Spočítať celkovú sumu vybranú v tomto prípade nemôže byť predložený možné, ale ak to urobíte impode (";", $ aResult), bude jedna dlhá fronta, ktorá páry -Názov domény /názov dediny. Názov mena - zozbieraný zväzok - bude uvedený cez ";". Potom, čo získal opak, explode (";", $ aResult) - rad všetkých, ktorí zbierajú a ako sa zhromažďujú a potom odstránenie všetkých liniek netsyfrovye postavy sú len čísla, ktorej výška bude celkový objem zhromaždené. V tomto príklade regulárne výrazy v PHP umožňujú nevyzerať navyše, jednoducho a cenovo dostupné extrahovať požadované číselné hodnoty. Rýchlo a efektívne, bez ohľadu na to, ako dlho sú mená dedín a podnikov. Toto riešenie nie je ideálne, ale ukazuje, že zďaleka nie je vždy potrebné dodržiavať pravidlá. Často môžete dosiahnuť požadovanú nezvyčajnú cestu.

    Pri abstrakciu od technickú stránku kódovania

    Syntax algoritmus nehovorí, ako to vyzerá v skutočnosti. Avšak, poskytujúce rovnakú kódovanie stránky skript a linky (ktorý je požadovaný, v ktorých je vyhľadávanie), môžete ponoriť do úloha nad jeho technickej stránke.
    Potrebujeme nielen vedieť, čo máme hľadať, ale aj to, kde to urobiť, kedy, v akom množstve, čo sa má zmeniť a ako. Formálne PHP regulárne výrazy vykonané ako kompletné plne funkčný mechanizmus jeho vlastné, ale z mnohých dôvodov zavedenia svojimi partnermi v mnohých jazykoch iný. Ako všeobecné pravidlo, než sa presunúť určitý vzor v konkrétnom nástroj prostredie pre riešenie konkrétneho problému, potrebujeme úpravu kvality pre overenie všetkých možných vstupných dát.
    Dokonca aj keď používate svoje vlastné vývojové skúsenosti v PHP, pravidelnévýrazy, príklady, vzory a návrhy vyžadujú dôkladnú kontrolu. Funkčný jazyk, syntax a prostredie výkonu sa dynamicky menia.

    Štruktúra a obsah šablóny

    To, čo bolo predtým napísané ako kombinácia vyhľadávacích funkcií, podmienené príkazy, transakcie nahradiť, vložiť, odstrániť, je reťazec znakov s určitými pravidlami - regulárnych výrazov. V skutočnosti je významné množstvo zakódované striktne definovaným spôsobom a je vykonávané podľa konkrétnych pravidiel. Rovnako ako nie je možné vykonať ladenie ľubovoľného jazyka operátora, nemožno ladiť regulárny výraz vzor, ​​tento proces môže emulovať. Všeobecným pravidlom je variant: funguje - nefunguje. Syntax je veľmi jednoduchý, aj keď jeho vnímanie, najmä na začiatku práce, je veľmi ťažké.

    Príkladom jednoduchého výrazu

    V najjednoduchšej verzii šablóny sa zhoduje s riadku: $ cContents = preg_match ("/asdf /i", "asdf", $ aResult). ,; '. implode (',', $ aResult). Výsledok bude "1, asdf", pretože funkcia dokončí svoju prácu na prvej zodpovedajúcej vzorke. Výsledok bude rovnaký, ak sa pozriete na riadok "aaaasdf" av riadku "zzzasdfvvv". Ak ste si vybrali prvé a /alebo posledný znak, výsledok je jednoznačný: $ cContents = preg_match ("/^ asdf /i", "asdf", $ aResult). ,; '. implode (',', $ aResult). '';
    $ cContents. = Preg_match ("/asdf $ /", "asdf", $ aResult). ,; '. implode (',', $ aResult). ''. Výsledok bude: 1; asdf1; asdf. Symboly "^" a "$" označujú, ktorá šablóna začína a končí. Výsledkom funkcie preg_match je počet zhody, môže to byť 0 1 alebo false, ak je zistená chyba. V treťom parametri je umiestnený prvok s jedným nájdeným prvkom. V tomto prípadepomocou funkcie preg_match_all () pokračuje vyhľadávanie až do konca riadku. $ cContents = preg_match ("/asdf /i", "asdf123asdf456asdf789", $ aResult). ,; '. implode (',', $ aResult). '';
    $ cContents. = Preg_match_all ("/asdf /i", "asdf123asdf456asdf789", $ aResult). ,; '. implode (',', $ aResult ). ''. Výsledok: 1; asdf
    3; asdf, asdf, asdf. Ak nepoužívate špeciálne pokyny, každý znak sa definuje sám a jeho miesto bez ohľadu na kódovanie či kódovanie šablóny. Programátor musí zabezpečiť, aby kódovanie týchto prvkov bolo vo vzťahu k sebe navzájom správne a kódovanie stránky.

    PHP funkcie pre regulárne výrazy

    Pravidelné výrazy v PHP sú reťazec znakov napísaných určitým spôsobom. Typicky sú analogicky s inými programovacími jazykmi napísané znakmi "/" "/" a sú umiestnené v úvodzovkách, v závislosti od algoritmu môžete použiť jedno a dvojité. Hlavná funkcia programu php preg match používa regulárne výrazy ako náhodnú zhodu šablóny a zastaví sa pri prvom prechode, pričom jej variant s príponou _ hľadá všetky zápasy a vydáva ich pole. Funkcia náhradnej výmeny nahrádza každú nájdenú vzorovú zhodu, dokáže spracovať pole, čo vám umožní navrhnúť vyhľadávanie a vykonať náhradu za mnohé možnosti. Zaujímavé možnosti práce s regulárnymi výrazmi možno vytvoriť pomocou funkcie preg_replace_callback, ktorá neakceptuje text, ktorý sa má nahradiť, a názov funkcie, ktorá vykoná výmenu. Okrem praktickej hodnoty je možné zaviesť mechanizmy na overenie šablón, ktoré zohrávajú významnú úlohu pri vývoji a zostavovaní šablón.

    Rozsah regulárnych výrazov

    OdvtedyHypertextové jazyky predstavujú formalizované informácie, vo väčšej miere sú zdrojovým materiálom. Veľké množstvo šablón a návrhov bolo vyvinutých s cieľom efektívne zvládnuť veľké objemy informácií. Väčšina tejto práce sa vykonáva prostredníctvom mechanizmov zabudovaných do rôznych systémov riadenia stránok (CMS). Nie je prekvapením, že veľa CMS sa stalo de facto štandardom pre stavby a sponzorované (aktualizované) vývojármi nevyžadujú, aby sa samy vytvárali šablóny. Avšak mimo takýchto systémov je veľmi užitočné mať skúsenosti s regulárnymi výrazmi.

    Pravidelné výrazy a skutočné informácie

    Dôležitou oblasťou používania regulárnych výrazov v PHP je vznik PHPOffice knižníc. Práca s dokumentmi a tabuľkami je vždy malá a dôležitá a štandardné rozhranie OOXML umožňuje nielen rozoberať skutočné dokumenty, ale aj ich vytvárať programovo. S rozvojom značkovacích jazykov a PHP najmä mať skutočnú príležitosť pre automatizáciu "výrobu" písomností "štandardný formulár" napríklad platiť účty, správy, obchodné plány a ďalšie informačné objekty, ktorých štruktúra a obsah sú vlastne formalizovať a automatizáciu , Vďaka použitiu procesu opisu jazyka OOXML má vývoj regulárnych výrazov významný rozdiel od tradičnej práce s značkovacími jazykmi HTML a CSS. Skutočný dokument, okrem označovania a okrem skutočného obsahu, má veľa detailov. Napríklad dokument vytvorený automaticky programommajú prísny a presný význam. Dokument vytvorený osobou, bez ohľadu na to, či je alebo nie je spracovaný, bude mať obsah, maľovaný v súbore značiek. Každá práca s dokumentom vedie k tomu, že jeho sémantika môže zostať jedným, ale vnútri s rôznym počtom rôznych dizajnov.

    Natural informácií a situácie

    Človek je vždy záujem o riešenie tohto problému, ktorý je informácia o nastavení a nakoniec budú poskytnuté ako informácie. Predloženie vyhlásenia o probléme v podobe dokumentu, daná osoba dostane sémantiku, že počas zjemnenie odborníkov (zmena, spresniť niektoré formulácie, mazanie, editácia) nielen vedie k viac verzií toho istého dokumentu, ale jeho verzia s rôznym obsahom. Najmä problém predstavuje podľa výrazu "Vyriešiť vzpriamene uranenye" ​​po úprave bude vyzerať takto: "Ak chcete vyriešiť kvadratickú rovnicu" Ak bola stanovená na začiatku prvej chybu a potom druhý, potom prirodzene informácie v štýle OOXML sa môže stať: "[Reshyt] [] [rovno] [E] [] [zdravie] [a] [ľan]", ale to neznamená, Záruka, že presne to bude vyzerať v značkách OOXML (hranaté zátvorky napodobňujú zátvorky). Je ľahké zhromažďovať informácie po každom procese úpravy úlohy, ale zakaždým, keď sa tento postup vykoná pod rôznymi algoritmami. Regulárne výrazy ako akýsi nástroj formalizácie informačných úloh bolo, v skutočnosti, že cesta od formálny k informáciám prírodnej hypertextové štruktúry.

    Súvisiace publikácie