Инвертиране на набори от символи в регулярни изрази

С помощта на каретката ^ в началото на квадратните скоби може да се инвертира желаното. Това означава, че ако, например, командата [ab] търси буквата 'a' или 'b', то командата [^ab] ще търси всички символи, с изключение на 'a' и 'b'.

Пример

В този пример шаблонът за търсене изглежда така: буква 'x', следвана от НЕ буквата 'a', нито 'b', нито 'c', и след това буква 'z':

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

В резултат в променливата ще бъде записано следното:

php'xaz xbz xcz !'

Пример

В този пример шаблонът за търсене изглежда така: буква 'x', следвана от НЕ малка латинска буква, и след това буква 'z':

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

В резултат в променливата ще бъде записано следното:

php'xaz xbz ! !'

Практически задачи

Задание 1

Напишете регулярен израз, който намира низове по шаблон: цифра '1', последвана от символ, различен от 'e' и 'x', и цифра '2'.

Задание 2

Напишете регулярен израз, който намира низове по шаблон: буква 'x', последвана от НЕ цифра между 2 и 7, и буква 'z'.

Задание 3

Напишете регулярен израз, който намира низове по шаблон: буква 'x', последвана от НЕ главна латинска буква 1 или повече пъти, и буква 'z'.

Задание 4

Напишете регулярен израз, който намира низове по шаблон: буква 'x', последвана от символ, който не е главна или малка латинска буква и не е цифра от 1 до 5, 1 или повече пъти, и буква 'z'.