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

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

Пример

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

pythontxt = 'xaz xbz xcz xez'
res = re.sub('x[^abc]z', '!', txt)

print(res)

Резултат от изпълнението на кода:

python'xax xbx xcx !'

Пример

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

pythontxt = 'xaz xbz x1z xCz'
res = re.sub('x[^a-z]z', '!', txt)

print(res)

Резултат от изпълнението на кода:

python'xaz xbz ! !'

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

Задание 1

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

Задание 2

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

Задание 3

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

Задание 4

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