Hlavnß strßnka · DiskusnΘ F≤rum · PracovnΘ prφle₧itosti · Zoznam

 Main Menu
o Hlavnß strßnka
o Zoznam tΘm
o Zoznam
o OdporuΦte nßs
o U₧φvatelia
o VaÜe konto
o Pridaj Φlßnok
o ètatistiky
o Top 10

 Reklama


 Developer Zone's
o Internet
o Tools
o Linux
o CGI Zone
o ASP Zone
o ASP.net
o PHP Zone
o CSS Zone
o JavaScript
o MySQL
o WAP / WML
o WML / WMLScript
o XML / XHTML
o Tipy a triky
o Best of web
o WebServers
o WebDesign
o Grafika

 Servis
o Vyh╛adßvanie
o F≤rum
o Workoffice
o Zoznam Φlßnkov
o Reklama
o Pridaj Φlßnok
o Pridaj novinku

NapφÜte nßm
Homepage Do favoritov

 LinkExpres
Interval.cz · Pc.sk
Builder.cz · Mobilmania
PCSvet.cz · Asp.cz
Webdnes · Äiv∞.sk
Zoznam.sk · Atlas.sk
Inzine.sk · PHP.sk
Agent.sk · Lupa.cz
Code.box.sk · Root.cz
Pixel32 · Grafika.cz

 forum.developer.sk
o F≤rum ::
o Markup languages
o ScriptovΘ jazyky
o CGI
o PHP/MySQL
o Perl
o Grafika
o Webservery
o HTML Editory
o Browsery
o Bookmarx
o ASP
o Vytvor tΘmu ::

 PracovnΘ prφle₧itosti
o Pon·kate prßcu?
o H╛adßte prßcu?

 Autori developer.sk
o Martin NemeΦek
o SvΣ¥o Straka
o Jany Masaryk
o Jozef Murφn

 
CGI / Perl [ 27. January 2000] - Svato_Straka
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).

 
 PrφsluÜnΘ odkazy k tΘme
Viac o tΘme: CGI / Perl | InΘ Φlßnky od: Admin | PoÜli komentßr | Strßnka vhodnß na tlaΦ width=15 height=11  PoÜli tento Φlßnok priate╛ovi, znßmemu width=15 height=11


NajΦφtanejÜie Φlßnky CGI / Perl:
╚o je to CGI? - ┌vod do CGI

╧alÜie Φlßnky v rubrike CGI / Perl:

 

"Regulßrne v²razy III. - 8. Φas¥ CGI" | Login / vytvor konto | 0 Komentßrov
Prah
Za obsah komentßrov je zodpovedn² u₧φvate╛, nie prevßdzkovate╛ t²chto strßnok.



AutorskΘ prßva: á ⌐1999 - 2001 Developer Zone [developer@developer.sk]

VÜetky Φlßnky s· vlastnφctvom autorov Developer Zone. VÜetky prßva vyhradenΘ. Strßnky Developer.sk s· vytvorenΘ pomocou PHP-Nuke.
Odkazy na novΘ Φlßnky je mo₧nΘ prebera¥ pomocou:Backend.php.