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

С помощью шляпки `^` в начале квадратных скобок можно инвертировать желаемое. То есть, если, к примеру, команда `[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'`.

← →
↑