Erandid regulaaravaldiste hulgades PHP regulaaravaldistes

Te juba teate, et erimärkidest [] sees muutuvad tavalisteks märkideks. Siiski on olemas erandeid: kui vajate ruutsulge märkidena, tuleb need kaitsta kurakaldkriipsuga.

Näiteks järgmises koodis näeb otsimismustri välja järgmine: x-de vahel on ruutsulg:

php<?php
  $str = 'x]x xax x[x x1x';
  $res = preg_replace('#x[\[\]]x#', '!', $str);
?>

Tulemusena kirjutatakse muutujasse järgmine:

php'! xax ! x1x'
Задание 1

Antud string:

php<?php
  $str = 'x[]z x{}z x.z x()z';
?>

Kirjutage regulaaravaldis, mis leiab kõik sõnad vastavalt mustrile: täht 'x', siis suvaline kogus suvalisi sulge, seejärel täht 'z'.

Задание 2

Antud string:

php<?php
  $str = '[abc] {abc} abc (abc) [abc]';
?>

Kirjutage regulaaravaldis, mis leiab stringid suvalistes sulgudes ja asendab need '!'-ga.