Znak daszka wewnątrz zbiorów w wyrażeniach regularnych PHP

Jak wiesz, daszek wewnątrz [] tworzy negację, gdy jest napisany na początku nawiasów. Oznacza to, że jest symbolem specjalnym wewnątrz tych nawiasów. Aby uzyskać daszek jako symbol, trzeba go albo wyescapować, albo usunąć z pierwszej pozycji.

Przykład

W następującym przykładzie wzorzec wyszukiwania jest następujący: pierwszy symbol to wszystko oprócz 'd', potem dwie litery 'x'.

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

W rezultacie do zmiennej zostanie zapisane następujące:

php'! ! ! dxx'

Przykład

A teraz wzorzec wyszukiwania jest następujący: pierwszy symbol - to 'd' lub '^', potem dwie litery 'x':

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

W rezultacie do zmiennej zostanie zapisane następujące:

php'axx bxx ! !'

Przykład

Można nie usuwać daszka z pierwszej pozycji, a po prostu wyescapować go za pomocą ukośnika odwrotnego, i będzie on oznaczał samego siebie:

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

W rezultacie do zmiennej zostanie zapisane następujące:

php'axx bxx ! !'

Zadania praktyczne

Задание 1

Dany jest ciąg:

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

Napisz wyrażenie regularne, które znajdzie ciągi według wzorca: daszek lub małpa, a następnie dwie litery łacińskie.

Задание 2

Dany jest ciąg:

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

Napisz wyrażenie regularne, które znajdzie ciągi według wzorca: NIE daszek i nie małpa, a następnie dwie litery łacińskie.

Задание 3

Dany jest ciąg:

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

Napisz wyrażenie regularne, które znajdzie ciągi według wzorca: NIE daszek, a następnie dwie litery łacińskie.