Links ::  | DEV web management system | Katalóg | Webhosting | Recepty
  
 Index | Registrácia | Hľadať | Galéria | BoardNeprihlásený užívateľ  //Utorok, 21. Novembra 2017 
Navigation
Index
Top 10 autorov
Top 20 článkov
Hľadať
Galéria

Zones
Asp.(NET)
C/C++
Flash
Grafika+Design
Hardware
Hry
Html/Css/Xml
Java
Linux
Networks
Operačný systém
Pascal/Delphi
PHP
Security
Software
SQL
Visual Basic
Wap/Wml
Windows
Zóna iné

Links
Script index Interval.cz Pc.sk Regedit.sk TipyaTriky.sk Builder.cz Asp.cz Živě.sk Zoznam.sk Code.box.sk Root.cz Quant&Financial

Odkazy

Sessions
Stránky Developer.sk si práve číta 388 čitateľov, z toho je 0 zaregistrovaných

BackEnd
Odkazy na nové články je možné preberať pomocou backend.php

kuk

    Regulárne výrazy III. - 8. časť CGI

V dnešnej (poslednej) časti rozpravy o regulárnych výrazoch v Perli si povieme čosi o modifikátoroch, ktoré sme si doteraz nespomenuli, rovnako sa pozrieme na príkaz nahradenia, ktorý nie je reg. výrazom i keď sa rovnako používa a vyzerá.


Tiež nás čaká príkaz split, ktorý uzatvára množinu základných príkazov úzko spojených s reg. výrazmi.

Modifikátory reg. výrazov

Práca operátorov porovnania (m//) a nahradenia (s///) môže byť ovplyvnená niekoľkými modifikátormi:

Modifikátor Význam
g Hľadá globálne, nachádza všetky výskyty
i Vyhľadáva výskyty bez ohľadu na veľkosť písmen
m Zaobhádza s reťazcom ako s viacerými riadkami
o Prekladá vzor len raz
s Zaobchádza s reťazcom ako s jedným riadkom
x Používa rozšírené reg. výrazy
e Vyhodnotí pravú stranu ako výraz (len s///)

Operátor porovnania m//má nasl. základnú syntax:
m/VZOR/gimosx
/VZOR/gimosx

Operátor prehľadáva výraz na zhodu s reťazcom VZOR a vráti true alebo false. Ak je oddelovačom v tomto oerátore znak "/", úvodné "m" sa nemusí uvádzať. Ako oddelovače môžu byť použité ľubovoľné nealfanumerické znaky.
Reťazec VZOR môže obsahovať vložené premenné. Toto však vyhľadávanie spomaľuje, pretože premenná sa musí zakaždým vyhodnotiť a vzor sa musí znovu preložiť. Pokým chcete toto obmedziť, použite modifikátor /o, ktorý spôsobí že VZOR sa preloží len raz.

Oerátor nahradenia s/// má nasl. základnú syntax:
s/VZOR/NAHRAD/egimosx
Tento oerátor v prehľadávanom reťazci vyhľadá reťazec VZOR a nahradí ho reťazcom NAHRAD. Vráti počet úspešných nahradení (1, pri modifikátore g to môže byť aj viac) alebo hodnotu false pri neúspechu. Opäť platí to isté čo pri operátore porovnania - vkladanie premenných do vzoru a nahradenia spomaľuje nahradzovanie. Pokým zvolíte ako oddeľovač znak ' (apostrof), vo VZORe ani v NAHRADení nebude vykonané vloženie premenných.

Modifikátor /e v operátore nahradenia spôsobí, že nahradzovacia časť (NAHRAD) bude vyhodnotená ako výraz, nie ako reťazec.

Príkaz nahradenia tr///

Ako som už v úvode spomenul, aj keď rovnako vyzerá a používa sa, príkaz nahradenia tr/// nie je v skutočnosti reg. výrazom. Jeho základná syntax je nasledovná:
tr/ZOZNAMPREHLADANIA/ZOZNAMNAHRADENIA/cds
y/ZOZNAMPREHLADANIA/ZOZNAMNAHRADENIA/cds

Tento príkaz prechádza prehľadávaný reťazec znak po znaku a všetky výskyty znakov, ktoré sú obsiahnuté v ZOZNAMPREHLADANIA nahradí zodpovedajúcim znakom zo ZOZNAMNAHRADENIA. Vráti počet nahradených znakov.

Modifikátor Význam
c Doplnok k ZOZNAMPREHLADANIA
c Nájdené nenahradzované znaky vymaže
s Zrazenie viacnásobne nahradených znakov

Pokým je použitý modifikátor /c, budú nahradené všetky znaky, ktoré nie sú obsiahnuté v ZOZNAMPREHLADANIA. Skutočný ZOZNAMPREHLADANIA je teda doplnkom k zadanému.

Pri použití modifikátoru /d budú všetky znaky zo ZOZNAMPREHLADANIA, ktoré nemajú uvedený v ZOZNAMNAHRADENIA svoj ekvivalent, vymazané. Pokým totiž použijete príkaz tr/// v ktorom je ZOZNAMPREHLADANIA kratší ako ZOZNAMNAHRADENIA, bude posledný znak zo ZOZNAMNAHRADENIA opakovaný tak dlho, kým ZOZNAMNAHRADENIA nebude mať rovnakú dĺžku ako ZOZNAMPREHLADANIA. Napr. pri príkaze tr/ABC/ab/ bude písmeno "C" nahradené písmenom "b".

Ak je uvedený modifikátor /s, postupnosti znakov, ktoré majú byť nahradené rovnakým znakom zo ZOZNAMNAHRADENIA sú nahradené jediným týmto znakom.

Príkaz split

Posledným zo základnej skupiny príkazov využívajúcich perlovské regulárne výrazy je príkaz split. Jeho základná syntax je nasledovná:
split /VZOR/, VÝRAZ, LIMIT
split /VZOR/, VÝRAZ
split /VZOR/
split

Tento vo VÝRAZe hľadá rozdeľovacie znaky a v ich miestach VÝRAZ rozdeľuje na podreťazce, ktoré vráti ako zoznam. Oddelovače sú určené opakovaným prehľadávaním VÝRAZu na výskyt reťazca VZOR (VZOR je teda chápaný ako oddelovač).
Pokým je použitý parameter LIMIT, split rozdelí VÝRAZ na max. LIMIT podreťazcov.
Pokým nie je špecifikovaný VÝRAZ, bude prehľadaný a rozdelený obsah premennej $_. Ak je vynechaný aj VZOR, bude vykonané rozdelenie v miestach všetkých prázdnych znakov okrem tých, ktoré sa nachádzajú na začiatku reťazca.

To by bolo o reg. výrazoch v Perli všetko, nabudúce sa pozrieme Server Side Includes (SSI).


Autor : Developer, čítané 4095x, komentárov: 0
Hodnotenie :    |  Utorok, 18. Marca 2003

Pridať nový komentár/Komentáre
Vaše hodnotenie :   horšie  lepšie
Login
Login:
Heslo:

Hľadať
 
v článkoch
v diskusiach
v komentároch

Top read
PHP Coder

Priklady v C. 1.čast.

DEV web management system

Php a bezpečnosť skriptov

Autorun CD

Top discuss
Jednoduchý web formulár (ASP.NET)

Delphi seriál: (1.časť)

Velmi rychla grafika v Pascale

DEV web management system

Naša ikona
Páčia sa Vám naše stránky ? Ak áno, podporte nás prosím a umiestnite si na svoju stránku našu ikonku:





Copyright (c) Developer.sk, All rights reserved.
Powered by DEV web management system