Inversarea seturilor de caractere în expresii regulate

Folosind semnul circumflex ^ la începutul parantezelor pătrate se poate inversa ceea ce este dorit. Adică, dacă, de exemplu, comanda [ab] caută litera 'a' sau 'b', atunci comanda [^ab] va căuta toate caracterele, cu excepția 'a' și 'b'.

Exemplu

În acest exemplu, șablonul de căutare arată astfel: litera 'x', apoi NU litera 'a', nu 'b' și nu 'c', apoi litera 'z':

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

Ca rezultat, în variabilă se va scrie următoarele:

php'xaz xbz xcz !'

Exemplu

În acest exemplu, șablonul de căutare arată astfel: litera 'x', apoi NU o literă latină mică, apoi litera 'z':

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

Ca rezultat, în variabilă se va scrie următoarele:

php'xaz xbz ! !'

Probleme practice

Задание 1

Scrieți o expresie regulată care va găsi șirurile după modelul: cifra '1', apoi caracterul nu 'e' și nu 'x', cifra '2'.

Задание 2

Scrieți o expresie regulată care va găsi șirurile după modelul: litera 'x', apoi NU o cifră de la 2 la 7, litera 'z'.

Задание 3

Scrieți o expresie regulată care va găsi șirurile după modelul: litera 'x', apoi NU o literă latină mare de la 1 și mai mult ori, litera 'z'.

Задание 4

Scrieți o expresie regulată care va găsi șirurile după modelul: litera 'x', apoi nu o literă latină mare și nu o literă latină mică și nu o cifră de la 1 la 5 de la 1 și mai mult ori, litera 'z'.