Ú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<?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<?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<?php
  preg_replace('#x.x#', '!', 'xax eee'); // vrátí '! eee'
?>
Задание 1

Je dán řetězec:

php<?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'.

Задание 2

Je dán řetězec:

php<?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'.