Bevezetés a reguláris kifejezésekbe PHP-ben
A reguláris kifejezések olyan parancsok komplex kereséshez és cserehez. Lehetővé teszik nagyon érdekes dolgok elvégzését, de sajnos meglehetősen nehezen elsajátíthatók.
Több PHP függvény is létezik a reguláris kifejezésekkel
való munkavégzésre. A megismerkedést a
preg_replace példáján kezdjük. Ez a
függvény az első paraméterként azt fogadja, hogy mit kell cserélni,
a másodikkal pedig azt, hogy mire, a harmadik paraméterként
pedig azt a karakterláncot, amelyben cserélni kell:
<?php
preg_replace(mit cserélj, mire, karakterlánc);
?>
Ekkor a függvényünk első paramétereként nem
egyszerű karakterláncot fogad, hanem egy reguláris kifejezést,
amely egy, a kettőskereszt # jelek közé helyezett
parancskészlettel rendelkező karakterlánc.
Ezeket a kettőskereszt jeleket a reguláris kifejezések
elválasztóinak nevezzük.
Az elválasztók után írhatunk módosítókat - olyan parancsokat, amelyek a reguláris kifejezés általános tulajdonságait módosítják.
Maga a reguláris kifejezés kétféle karakterből áll: olyanokból, amelyek önmagukat jelentik, és olyan parancskarakterekből, amelyeket speciális karaktereknek nevezünk.
A betűk és számok önmagukat jelentik. A következő
példában a reguláris kifejezés segítségével
kicseréljük a 'a' betűt '!'-ra:
<?php
preg_replace('#a#', '!', 'bab'); // visszaadja 'b!b'-t
?>
Viszont a pont speciális karakter
és bármely karaktert jelent. A következő
példában egy karakterláncot találunk a következő minta szerint:
'x' betű, majd bármely karakter, majd
ismét a 'x' betű:
<?php
preg_replace('#x.x#', '!', 'xax eee'); // visszaadja '! eee'-t
?>
Adott egy karakterlánc:
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
Írjon reguláris kifejezést, amely megtalálja a
'ahb', 'acb', 'aeb'
karakterláncokat a következő minta szerint: 'a' betű, bármely karakter,
'b' betű.
Adott egy karakterlánc:
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
Írjon reguláris kifejezést, amely megtalálja a
'aeeb', 'adcb', 'axeb'
karakterláncokat a következő minta szerint: 'a' betű, bármely két
karakter, 'b' betű.