Инвертиране на набори от символи в регулярни изрази
С помощта на каретката '^' в началото
на квадратните скоби може да се инвертира
желаното. Ако, например, командата [ab]
търси буквата 'a' или 'b', то
командата [^ab] ще търси всички
символи, с изключение на 'a' и 'b'.
Пример
В този пример шаблонът за търсене изглежда
така: буква 'x', след това НЕ буква
'a', не 'b' и не 'c',
след това буква 'z':
txt = 'xaz xbz xcz xez'
res = re.sub('x[^abc]z', '!', txt)
print(res)
Резултат от изпълнението на кода:
'xax xbx xcx !'
Пример
В този пример шаблонът за търсене изглежда
така: буква 'x', след това НЕ малка
латинска буква, след това буква 'z':
txt = 'xaz xbz x1z xCz'
res = re.sub('x[^a-z]z', '!', txt)
print(res)
Резултат от изпълнението на кода:
'xaz xbz ! !'
Практически задачи
Напишете регулярен израз, който ще намери низове
по шаблон: цифра 1, след това символ
не 'e' и не 'x', цифра
2.
Напишете регулярен израз, който ще намери низове
по шаблон: буква 'x', след това НЕ
цифра от 2 до 7, буква
'z'.
Напишете регулярен израз, който ще намери низове
по шаблон: буква 'x', след това НЕ
голяма латинска буква от 1 и повече
пъти, буква 'z'.
Напишете регулярен израз, който ще намери низове
по шаблон: буква 'x', след това НЕ
голяма или малка латинска буква и
не цифра от 1 до 5 от 1
и повече пъти, буква 'z'.