Сімвал шапачкі ўнутры набораў у рэгулярках PHP

Як вы ведаеце, шапачка ўнутры [] робіць адмаўленне, будучы напісанай у пачатку дужак. Значыць, яна з'яўляецца спецсімвалам унутры гэтых дужак. Каб атрымаць шапачку як сімвал, трэба альбо заэкранаваць яе, альбо прыбраць з першага месца.

Прыклад

У наступным прыкладзе шаблон пошуку такі: першы сімвал - гэта ўсё акрамя 'd', потым дзве літары 'x'.

php<?php
  $str = 'axx bxx ^xx dxx';
  $res = preg_replace('#[^d]xx#', '!', $str);
?>

У выніку ў зменную запішацца наступнае:

php'! ! ! dxx'

Прыклад

А цяпер шаблон пошуку такі: першы сімвал - гэта 'd' альбо '^', потым дзве літары 'x':

php<?php
  $str = 'axx bxx ^xx dxx';
  $res = preg_replace('#[d^]xx#', '!', $str);
?>

У выніку ў зменную запішацца наступнае:

php'axx bxx ! !'

Прыклад

Можна не прыбіраць шапачку з першага месца, а проста заэкранаваць яе з дапамогай адваротнага слэша, і яна стане абазначаць саму сябе:

php<?php
  $str = 'axx bxx ^xx dxx';
  $res = preg_replace('#[\^d]xx#', '!', $str);
?>

У выніку ў зменную запішацца наступнае:

php'axx bxx ! !'

Практычныя задачы

Задание 1

Дадзены радок:

php<?php
  $str = '^xx axx ^zz bkk @ss';
?>

Напішыце рэгулярку, якая знойдзе радкі па шаблоне: шапачка альбо сабака, а затым дзве лацінскія літары.

Задание 2

Дадзены радок:

php<?php
  $str = '^xx axx ^zz bkk @ss';
?>

Напішыце рэгулярку, якая знойдзе радкі па шаблоне: НЕ шапачка і не сабака, а затым дзве лацінскія літары.

Задание 3

Дадзены радок:

php<?php
  $str = '^xx axx ^zz bkk';
?>

Напішыце рэгулярку, якая знойдзе радкі па шаблоне: НЕ шапачка, а затым дзве лацінскія літары.