Инвертиране на набори от символи в регулярни изрази
С помощта на каретката ^ в началото на квадратните
скоби може да се инвертира желаното. Това означава,
че ако, например, командата [ab] търси
буквата 'a' или 'b', то командата
[^ab] ще търси всички символи, с изключение на
'a' и 'b'.
Пример
В този пример шаблонът за търсене изглежда така:
буква 'x', следвана от НЕ буквата 'a',
нито 'b', нито 'c', и след това буква
'z':
<?php
$str = 'xaz xbz xcz xez';
$res = preg_replace('#x[^abc]z#', '!', $str);
?>
В резултат в променливата ще бъде записано следното:
'xaz xbz xcz !'
Пример
В този пример шаблонът за търсене изглежда така:
буква 'x', следвана от НЕ малка латинска
буква, и след това буква 'z':
<?php
$str = 'xaz xbz x1z xCz';
$res = preg_replace('#x[^a-z]z#', '!', $str);
?>
В резултат в променливата ще бъде записано следното:
'xaz xbz ! !'
Практически задачи
Напишете регулярен израз, който намира низове
по шаблон: цифра '1', последвана от символ,
различен от 'e' и 'x', и цифра '2'.
Напишете регулярен израз, който намира низове
по шаблон: буква 'x', последвана от НЕ
цифра между 2 и 7, и буква 'z'.
Напишете регулярен израз, който намира низове
по шаблон: буква 'x', последвана от НЕ
главна латинска буква 1 или повече пъти,
и буква 'z'.
Напишете регулярен израз, който намира низове
по шаблон: буква 'x', последвана от символ,
който не е главна или малка латинска буква и не е цифра
от 1 до 5, 1 или повече пъти,
и буква 'z'.