Invertendo conjuntos de caracteres em regex

Usando o acento circunflexo ^ no início de colchetes quadrados, você pode inverter a correspondência. Ou seja, se, por exemplo, o comando [ab] procura pela letra 'a' ou 'b', então o comando [^ab] procurará todos os caracteres, exceto 'a' e 'b'.

Exemplo

Neste exemplo, o padrão de pesquisa é o seguinte: letra 'x', depois NÃO a letra 'a', nem 'b' e nem 'c', depois a letra 'z':

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

Como resultado, o seguinte será armazenado na variável:

php'xaz xbz xcz !'

Exemplo

Neste exemplo, o padrão de pesquisa é o seguinte: letra 'x', depois NÃO uma letra minúscula latina, depois a letra 'z':

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

Como resultado, o seguinte será armazenado na variável:

php'xaz xbz ! !'

Tarefas práticas

Задание 1

Escreva uma expressão regular que encontre strings seguindo o padrão: dígito '1', depois um caractere que não seja 'e' nem 'x', dígito '2'.

Задание 2

Escreva uma expressão regular que encontre strings seguindo o padrão: letra 'x', depois NÃO um dígito de 2 a 7, letra 'z'.

Задание 3

Escreva uma expressão regular que encontre strings seguindo o padrão: letra 'x', depois NÃO uma letra latina maiúscula, 1 ou mais vezes, letra 'z'.

Задание 4

Escreva uma expressão regular que encontre strings seguindo o padrão: letra 'x', depois nem uma letra latina maiúscula, nem minúscula e nem um dígito de 1 a 5, 1 ou mais vezes, letra 'z'.