Úvod do regulárnych výrazov v PHP
Regulárne výrazy sú príkazy pre zložité vyhľadávanie a nahradzovanie. Umožňujú robiť veľmi zaujímavé veci, no, bohužiaľ, sú pomerne ťažké na osvojenie.
Existuje niekoľko funkcií PHP pre prácu
s regulárnymi výrazmi. Zoznámime sa s nimi
na príklade preg_replace. Táto
funkcia ako prvý parameter berie čo nahradiť,
ako druhý - čím nahradiť, a ako tretí parameter
- reťazec, v ktorom je potrebné vykonať nahradzovanie:
<?php
preg_replace(čo nahradiť, čím, reťazec);
?>
Prvý parameter tejto funkcie nie je
jednoduchý reťazec, ale regulárny výraz,
ktorý predstavuje reťazec so súborom príkazov,
umiestnených inside znakov mriežky #.
Tieto mriežky sa nazývajú oddeľovače
regulárnych výrazov.
Za oddeľovačmi je možné písať modifikátory - príkazy, ktoré menia všeobecné vlastnosti regulárneho výrazu.
Samotné regulárne výrazy sa skladajú z dvoch druhov symbolov: z tých, ktoré označujú samých seba a zo symbolov-príkazov, ktoré sa nazývajú špeciálne znaky.
Písmená a čísla označujú samých seba. V nasledujúcom
príklade pomocou regulárneho výrazu
nahradíme písmeno 'a' na '!':
<?php
preg_replace('#a#', '!', 'bab'); // vráti 'b!b'
?>
Bodka je však špeciálnym symbolom
a označuje akýkoľvek znak. V nasledujúcom
príklade nájdeme reťazec podľa tohto vzoru:
písmeno 'x', potom ľubovoľný znak, potom
opäť písmeno 'x':
<?php
preg_replace('#x.x#', '!', 'xax eee'); // vráti '! eee'
?>
Daný reťazec:
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
Napíšte regulárny výraz, ktorý nájde reťazce
'ahb', 'acb', 'aeb'
podľa vzoru: písmeno 'a', ľubovoľný znak,
písmeno 'b'.
Daný reťazec:
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
Napíšte regulárny výraz, ktorý nájde reťazce
'aeeb', 'adcb', 'axeb'
podľa vzoru: písmeno 'a', dva ľubovoľné
znaky, písmeno 'b'.