Pravidelné výrazy (PHP). PHP: regulární výrazy, příklady

Jak velký a rozmanitý je svět informací, jak rychle se rozšiřuje a rozvíjí. Každé rozhodnutí je jen okamžik ve všeobecném procesu pohybu. Znalosti a zkušenosti poskytují příležitost porozumět procesu dosažení cíle, ale nikdy - nikoliv výsledek jeho dosažení. Je pochybné, že v blízké budoucnosti můžeme vůbec mluvit o výsledku, ale je velmi důležité, aby proces snažení o něj představoval podstatný a objektivně nezbytný proces. "Touha a /nebo velké peníze" nevytvářejí algoritmus, který člověk dokáže něco přirozeného a "svobodného", zvláště když neuvažuje o tom, co přesně dělá. V každé pozici informační úlohy je nejméně jedno bílé místo, ale po něm obvykle najednou jsou vidět jiné čisté skvrny a není nutné, aby byly všechny bílé květy.


Internetová technologie výrazně zjednodušila přístup k informacím, ale otázka - jak uložit žádoucí žádoucí - nebyla zjednodušena, ale získala nové "objemy práce. A zatímco regulární prostory PHP nejsou jednoznačně vyčerpány, jsou významným krokem vpřed.

Jednoduché funkce + algoritmus = šablona

Nabízí regulární výrazy, PHP podstatně snižuje obsah algoritmu, ale obvyklé vyhledávací /nahrazovací funkce a algoritmy nalezeného zpracování neztratili svůj význam. Nové nápady nezobrazují informaci o revoluci. Maximální část, na kterou se lze spolehnout, je kompaktní kód a růst schopnosti vývojáře správně formulovat vyhledávací dotaz.
Mělo by být známé apoužít regulární výrazy v PHP. Přesvědčivé příklady a efektivní. Ale člověk by si měl uvědomit, že s nástupem nového vyhledávacího mechanismu se těžiště přesunulo do šablony - jakýsi mechanismus, ačkoli v podstatě nahrazuje soubor jednoduchých vyhledávacích funkcí, podmínek, cyklů a dalších operátorů.


Matka:
  • Kvalitní a moderní nástroj je dobrý;
  • je důležité vidět a využívat zkušenosti vysokých škol;
  • kombinující skutečnou realitu a virtuální myšlenky je zárukou úspěchu.
  • Dosažení znalostí, jelikož bylo nutné pochopit úkol, řešit jej, má často větší význam než konkrétní výsledek. Pravidelné fráze v PHP jsou reprezentovány několika funkcemi v syntaxi jazyka a mnoha užitečných příkladech na internetu. S ohledem na specifika syntaxe jazyka jsou možnosti použití omezeny pouze představivostí vývojáře, ale je třeba mít na paměti, že ne všechny šablony budou fungovat. Pomocí PHP kontroly pravidelných výrazů je nezbytné.

    Jednoduché vyhledávání znaků (řádek)

    Znak není vždy jeden bajt a často symbol, jako elementární signál, má navíc přesný význam. Kódování definuje viditelné znaky v kódu různými způsoby. Symbol může mít několik možností: "$" = "USD" = ".e." - je to přesný význam, že něco jiného, ​​ale ne nutně blízké, souvisí s měnou. Přesný význam však může spočívat ve proměnné PHP, která vždy začíná symbolem "$", ale nemůže začít s "USD" a "in."
    V programech může být znakem jména funkce (řetězec) v kontextu: rozpoznávat a spouštět - je to z dynamické doményobjektově orientované programování, když konstrukty, funkce, regulární výrazy používá PHP přímo pro rozhodování. Nalezený symbol "splňuje", tj. Určuje, co je třeba udělat v místě, kde bylo nalezeno, a to, jak to "myslí", je nezbytné.
    Jednoduché hledání znaku /řetězce není jednoduché zaměstnání a čím více v symbolu informací, tím lépe. Ne vždy potřebujete najít tucet nejlepších cen potravin, vybrat si chutné recepty na slavnostní dort nebo se rozhodnete s dodavatelem na závěsném stropu.
    Často je nutné optimalizovat jednoduché algoritmy, nikoliv jednoduché informace aritmetické nebo v obtížných podmínkách, kdy musí být vybrán požadovaný znak z databáze a řada, ve které má být nalezena - na stovkách lokalit. V tomto případě se cena symbolu rovná době vzorkování z databáze a cena místa, kde se má hledat - doba hledání proslulých stovek stránek. Osamocený symbol není fráze ani několik frází, může být kdekoli a být libovolně malý. Jak zjistit, co přesně je potřeba?

    Příklad: vyhledávání cen

    Stačí zjistit symbol $ v textu nestačí. Není vždy dost prokázat, že před ním je postava. Pokud před symbolem "$" předpovítete bod nebo číslici, je to záruka, že ceny, s nimiž jsou měnové symboly dopředu, nebudou vzaty v úvahu. Budou také vynechány ceny, které vůbec neuvádějí měnu, ale na stránce je to údaj.
    Řešení tohoto problému zpravidla zveličuje algoritmus neuznání a bude trvathodně času. Mezitím pomocí regulárního výrazu nebude počet PHP najít žádný problém. $ CContents = preg_match_all ("/[0-9] + ([$] | usd | cu | ve) {1} /i", "hledat e-mail - 2usd;"
    „najít e -mail - 2u.e; "
    " pracovní e-mail - UE2. "
    " zkontrolovat e-maily - 13 $“, $ aResult);
    . '; '. implode (',', $ aResult ). ''. Odpovídá: "2, 2usd, 2u.e.", ale nic nenajde v řádku: "check e-mail - $ 13". Tím, že předpovídáte v šabloně přítomnost symbolu v přední nebo zadní části, můžete rychle dosáhnout cíle ve velké většině případů. $ CContents = preg_match_all („/([0-9] + ([$] | USD | cu | ve) {1}) | (([$] | USD | cu | ve) {1 } [0-9] +) /i "
    " vzhled e-mailem - 2usd; "
    " nalézt e-mailu - 2u.e; "
    " pracovní e-mail - ue2; "
    " Kontrola e-mailu - $ 13 "; $ aResult;);
    . '; '. implode (',', $ aResult ). ''.
    Výsledek: "4; 2usd, 2u.e., ue2 $ 13".

    podmíněná logika

    regulárních výrazů PHP nabízí, stejně jako další nástroje, ale nemusí nutně platit jim podle jejích pravidel, nebo používat další funkce za předpokladu, syntax řetězec následovně. Před zahájením vyhledávání převeďte požadované pole a místo, kde bude hledání provedeno, rozdělte na součásti podle předchozího kritéria. Jednoduchý pár funkcí exploduje () a implode () často zjednodušuje a zrychluje řešení.
    Například, jak je výsledkem předchozí práce tvořil pole řetězců (dat) v oblasti, jak mnoho brambor odebírány každé vesnici: YmyaDerevnya poznamenat, a shromáždí množství, a v případě, že obec má několik podniků, v řádku pole a je hodnota YmyaDerevnya.YmyaPredpryyatye přes ";" a tak na všech podnicích. Spočítat celkovou částku vybranou v tomto případě nemůže být předložen možné, ale pokud to uděláte impode („;“, $ aResult), bude jedna dlouhá fronta, která páry -Název domény /Název vesnice. Jméno jména - Shromážděný objem - bude zobrazen pomocí ";". Poté, co získal opak, explode („;“, $ aResult) - řada všechny, kteří sbírají a jak se shromažďují a poté odstranění všech linek netsyfrovye postavy jsou jen čísla, jejíž výše bude celkový objem shromážděny. V tomto příkladu regulární výrazy v PHP umožňují nevypadat vůbec navíc, prostě a cenově dostupné extrahovat požadované číselné hodnoty. Rychle a efektivně, bez ohledu na to, jak dlouho jsou jména vesnic a podniků. Toto řešení není ideální, ale ukazuje, že zdaleka není nutné dodržovat pravidla. Často můžete dosáhnout požadované neobvyklé cesty.

    Při abstrakci od technickou stránku kódování

    Syntax algoritmus neříká, jak to vypadá ve skutečnosti. Nicméně, poskytující stejnou kódování stránky skript a linky (který je požadován, ve kterých je vyhledávání), můžete ponořit do úkol nad jeho technické stránce.
    Nesmíme jen vědět, co hledat, ale kde na to, kdy, kolik, co změnit a jakým způsobem. Formálně PHP regulární výrazy provedeny jako kompletní plně funkční mechanismus jeho vlastní, ale z mnoha důvodů zavedení svými protějšky v mnoha jazycích jiný. Jako obecné pravidlo, než se přesunout určitý vzor v konkrétním nástroj prostředí pro řešení konkrétního problému, potřebujeme úpravu kvality pro ověření všech možných vstupních dat.
    Dokonce i když používáte své vlastní vývojové zkušenosti v PHP, pravidelnévýrazy, příklady, vzory a návrhy vyžadují důkladnou kontrolu. Funkční jazyk, syntaxe a prostředí výkonu se dynamicky mění.

    Struktura a obsah šablony

    To, co bylo dříve napsáno jako kombinace vyhledávacích funkcí, podmíněné příkazy, transakce nahradit, vložit, odstranit, je řetězec znaků s určitými pravidly - regulárních výrazů. Ve skutečnosti, významné množství kódovaných přesně definovaným způsobem a provádí zvláštní pravidla. Stejně jako nelze provést ladění libovolného jazyka operátora, nelze ladit regulární výraz vzor, ​​tento proces může emulovat. Obecným pravidlem je varianta: funguje - nefunguje. Syntaxe je velmi jednoduchá, i když je její vnímání, zvláště na začátku práce, velmi obtížné.

    Příkladem jednoduchého výrazu

    V nejjednodušší verzi šablony se shoduje s řádku: $ cContents = preg_match ("/asdf /i", "asdf", $ aResult). '; '. implode (',', $ aResult). Výsledek bude "1, asdf", protože funkce dokončí svou práci na první shodné vzorové shodě. Výsledek bude stejný, když se podíváte na řádku „aaaasdf“ v řádku „zzzasdfvvv“. Jestliže jste si vybrali první a /nebo poslední znak, výsledek je jednoznačný: $ cContents = preg_match ("/^ asdf /i", "asdf", $ aResult). '; '. implode (',', $ aResult). '';
    $ cContents. = preg_match ("/asdf $ /", "asdf", $ aResult). '; '. implode (',', $ aResult). ''. Výsledkem bude: 1; asdf1; asdf Symboly "^" a "$" označují, která šablona začíná a končí. Výsledek funkce preg_match - počet zápalek, to může být 0 nebo 1 false, pokud došlo k chybě. Ve třetím parametru je políčko, jediný nalezený prvek umístěn. V tomto případěpomocí funkce preg_match_all () pokračuje vyhledávání až do konce řádku. $ cContents = preg_match ("/asdf /i", "asdf123asdf456asdf789", $ aResult). '; '. implode (',', $ aResult). '';
    $ cContents. = Preg_match_all ("/asdf /i", "asdf123asdf456asdf789", $ aResult). '; '. implode (',', $ aResult ). ''. Výsledek: 1; asdf
    3; asdf, asdf, asdf. Pokud nepoužíváte speciální instrukce, pak každá písmena definuje sebe sama a místo, bez ohledu na kódování řádků a kódování šablon. Programátor musí zajistit, aby bylo kódování těchto prvků správné ve vztahu k sobě a kódování stránky.

    Funkce PHP pro regulární výrazy

    Pravidelné výrazy v PHP jsou řetězec znaků napsaných určitým způsobem. Typicky jsou analogicky s jinými programovacími jazyky napsány znaky "/" "/" a jsou umístěny v uvozovkách, v závislosti na algoritmu můžete použít jeden a dvojitý. Hlavní funkce php preg zápas používá regulární výrazy jako shodu šablony a zastaví se při prvním pobytu, její variant s příponou _all hledá všechny zápasy a vydává pole takových. Funkce náhradní náhražky nahrazuje všechny nalezené shodné vzory, může zpracovávat pole a umožňuje navrhnout vyhledávání a provést náhradu za mnoho možností. Zajímavé možnosti pro práci s regulárními výrazy lze vytvořit pomocí funkce preg_replace_callback, která nepřijme text, který má být nahrazen, a název funkce, která provede výměnu. Kromě praktické hodnoty je možné zavést mechanismy pro ověření šablon, které hrají významnou roli při vývoji a sestavování šablon.

    Rozsah regulárních výrazů

    Od té dobyHypertextové jazyky představují formalizované informace, ve větší míře jsou zdrojem. Bylo vyvinuto velké množství šablon a návrhů, které efektivně zpracovávají velké objemy informací. Většina této práce je prováděna prostřednictvím mechanismů zabudovaných do různých systémů správy webu (CMS). Není divu, že mnoho CMS se stalo de facto standardem pro stavby a, sponzorované (aktualizováno) vývojáři, nevyžadují, aby se samy vytvářely šablony. Nicméně, mimo tyto systémy, mají zkušenosti s regulárními výrazy velmi užitečné.

    Pravidelné výrazy a skutečné informace

    Důležitou oblastí použití regulárních výrazů v PHP knihoven vytvořených adventní PHPOffice. Práce s dokumenty a tabulkami je vždy malá a důležitá a standardní OOXML umožňovala nejen rozkládat skutečné dokumenty, ale také je vytvářet programově. S rozvojem značkovacích jazyků a PHP zejména mít skutečnou příležitost pro automatizaci „výrobu“ písemností „standardní formulář“ například platit účty, zprávy, obchodní plány a další informační objekty, jejichž struktura a obsah jsou vlastně formalizovat a automatizaci . Díky použití popisu jazyka OOXML má vývoj regulárních výrazů výrazný rozdíl od tradiční práce s značkovacími jazyky HTML a CSS. Skutečný dokument kromě značkování a kromě skutečného obsahu obsahuje mnoho detailů. Například dokument vytvořený automaticky programemmají přísný a přesný význam. Dokument vytvořený osobou, ať už je či není zpracován, bude mít obsah, namalovaný v sadě značek. Jakákoli práce s dokumentem vede k tomu, že jeho sémantika může zůstat jedna, ale malovaná uvnitř s různým počtem různých návrhů.

    Natural informací a situace

    Člověk je vždy zájem o řešení tohoto problému, který je informace o nastavení a nakonec budou poskytnuty jako informace. Předložení prohlášení o problému v podobě dokumentu, daná osoba dostane sémantiku, že během zjemnění odborníků (změna, zpřesnit některé formulace, mazání, editace) nejen vede k více verzí téhož dokumentu, ale jeho verze s různým obsahem. Zejména problém představuje podle výrazu „Vyřešit zpříma uranenye“ po úpravě bude vypadat takto: „Chcete-li vyřešit kvadratickou rovnici“ Pokud byla stanovena na počátku první chybu a pak druhý, pak přirozeně informace ve stylu OOXML se může stát: „[Reshyt] [] [rovně] [E] [] [zdraví] [a] [len]“, ale to neznamená, Záruka, že to bude vypadat přesně v značkách OOXML (hranaté závorky napodobují závorky značek). Je snadné shromažďovat informace po každém procesu úpravy úkolu, ale pokaždé, když bude tento postup proveden pod různými algoritmy. Regulární výrazy jako jakýsi nástroj formalizace informačních úkolů bylo, ve skutečnosti, že cesta od formální k informacím přírodní hypertextové struktury.

    Související publikace