⊗ppPmRgVA 258 of 447 menu

Prehľad dopredu v regulárnych výrazoch PHP

Niekedy je potrebné vyriešiť úlohu tohto typu: nájsť reťazec 'aaa' a nahradiť ho '!', ale len vtedy, ak za 'aaa' nasleduje 'x', pričom samotné 'x' sa nenahrádza. Ak sa pokúsime úlohu vyriešiť 'priamo', nič sa nám nepodarí:

<?php preg_replace('#aaax#', '!', 'aaax'); // bude '!', ale má byť '!x' ?>

Na vyriešenie úlohy je potrebný spôsob, ako povedať, že 'x' by sa nemalo nahradiť. Robí sa to pomocou špeciálnych zátvoriek (?= ), ktoré len prehliadajú, ale neberú so sebou.

Tieto zátvorky sa nazývajú pozitívny prehľad dopredu. Pozitívny - pretože 'x' (v našom prípade) musí byť prítomný - len vtedy dôjde k nahradeniu.

Použime tieto zátvorky na vyriešenie našej úlohy:

<?php preg_replace('#aaa(?=x)#', '!', 'aaax'); // vráti '!x' ?>

Existuje aj negatívny prehľad dopredu - (?! ) - ten naopak hovorí, že niečo by nemalo byť prítomné. V nasledujúcom príklade k nahradeniu dôjde len vtedy, ak za 'aaa' nenasleduje 'x':

<?php preg_replace('#aaa(?!x)#', '!', 'aaab'); // vráti '!b' ?>

Daný je reťazec obsahujúci názvy funkcií:

<?php $str = 'func1() func2() func3()'; ?>

Získajte pole mien funkcií z reťazca.

Daný je reťazec s tagom:

<?php $str = '<a href="" class="eee" id="zzz">'; ?>

Získajte pole mien atribútov tohto tagu.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť