Inwertowanie zestawów znaków w regex

Za pomocą daszka ^ na początku kwadratowych nawiasów można inwertować pożądane. To znaczy, jeśli na przykład polecenie [ab] szuka litery 'a' lub 'b', to polecenie [^ab] będzie szukać wszystkich znaków, z wyjątkiem 'a' i 'b'.

Przykład

W tym przykładzie wzorzec wyszukiwania wygląda tak: litera 'x', następnie NIE litera 'a', nie 'b' i nie 'c', potem litera 'z':

php<?php
  $str = 'xaz xbz xcz xez';
  $res = preg_replace('#x[^abc]z#', '!', $str);
?>

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

php'xaz xbz xcz !'

Przykład

W tym przykładzie wzorzec wyszukiwania wygląda tak: litera 'x', następnie NIE mała litera łacińska, potem litera 'z':

php<?php
  $str = 'xaz xbz x1z xCz';
  $res = preg_replace('#x[^a-z]z#', '!', $str);
?>

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

php'xaz xbz ! !'

Zadania praktyczne

Задание 1

Napisz wyrażenie regularne, które znajdzie ciągi według wzorca: cyfra '1', następnie znak nie 'e' i nie 'x', cyfra '2'.

Задание 2

Napisz wyrażenie regularne, które znajdzie ciągi według wzorca: litera 'x', następnie NIE cyfra od 2 do 7, litera 'z'.

Задание 3

Napisz wyrażenie regularne, które znajdzie ciągi według wzorca: litera 'x', następnie NIE duża litera łacińska od 1 i więcej razy, litera 'z'.

Задание 4

Napisz wyrażenie regularne, które znajdzie ciągi według wzorca: litera 'x', następnie nie duża i nie mała litera łacińska i nie cyfra od 1 do 5 od 1 i więcej razy, litera 'z'.