Úvod do regulárních výrazů v PHP
Regulární výrazy jsou příkazy pro složité vyhledávání a nahrazování. Umožňují dělat velmi zajímavé věci, ale bohužel jsou poměrně těžké na osvojení.
Existuje několik funkcí PHP pro práci
s regulárními výrazy. Seznámíme se s nimi
na příkladu preg_replace. Tato
funkce přijímá jako první parametr co nahradit,
jako druhý - za co nahradit a jako třetí parametr
- řetězec, ve kterém se má nahrazovat:
<?php
preg_replace(co nahradit, za co, řetězec);
?>
Přitom první parametr naše funkce nepřijímá
jen prostý řetězec, ale regulární výraz,
který představuje řetězec se sadou příkazů,
umístěných uvnitř znaků mřížky #.
Tyto mřížky se nazývají oddělovače
regulárních výrazů.
Za oddělovači lze psát modifikátory - příkazy, které mění obecné vlastnosti regulárního výrazu.
Samotné regulární výrazy se skládají ze dvou typů znaků: z těch, které označují samy sebe a ze znaků-příkazů, které se nazývají speciální znaky.
Písmena a číslice označují samy sebe. V následujícím
příkladě pomocí regulárního výrazu
nahradíme písmeno 'a' za '!':
<?php
preg_replace('#a#', '!', 'bab'); // vrátí 'b!b'
?>
Například tečka je speciální znak
a označuje libovolný znak. V následujícím
příkladě najdeme řetězec podle tohoto vzoru:
písmeno 'x', poté libovolný znak, poté
znovu písmeno 'x':
<?php
preg_replace('#x.x#', '!', 'xax eee'); // vrátí '! eee'
?>
Je dán řetězec:
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
Napište regulární výraz, který najde řetězce
'ahb', 'acb', 'aeb'
podle vzoru: písmeno 'a', libovolný znak,
písmeno 'b'.
Je dán řetězec:
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
Napište regulární výraz, který najde řetězce
'aeeb', 'adcb', 'axeb'
podle vzoru: písmeno 'a', dva libovolné
znaky, písmeno 'b'.