Speciální znaky uvnitř hranatých závorek v PHP

Speciální znaky uvnitř [] se stanou obyčejnými znaky. To znamená, že je není třeba escapovat zpětným lomítkem.

Příklad

V tomto příkladu vypadá vyhledávací šablona takto: mezi iksy jakékoliv písmeno 'a', 'b', 'c', nebo tečka:

php<?php
  $str = 'xax xbx xcx xdx x.x x@x';
  $res = preg_replace('#x[abc.]x#', '!', $str);
?>

Výsledek zapsaný do proměnné bude následující:

php'! ! ! xdx ! x@x'

Příklad

V tomto příkladu vypadá vyhledávací šablona takto: mezi iksy jakékoliv malé latinské písmeno nebo tečka:

php<?php
  $str = 'xax xbx xcx x@x';
  $res = preg_replace('#x[a-z.]x#', '!', $str);
?>

Výsledek zapsaný do proměnné bude následující:

php'! ! ! x@x'

Praktické úlohy

Задание 1

Je dán řetězec:

php<?php
  $str = 'aba aea aca aza axa a.a a+a a*a';
?>

Napište regulární výraz, který najde řetězce 'a.a', 'a+a', 'a*a', a neovlivní ostatní.

Задание 2

Je dán řetězec:

php<?php
  $str = 'xaz x.z x3z x@z x$z xrz';
?>

Napište regulární výraz, který najde řetězce podle šablony: písmeno 'x', poté NE tečka, NE zavináč, a NE dolar, a poté písmeno 'z'.