Символът каретка вътре в набори в регулярни изрази на Python

Както знаете, каретката вътре в [ ] означава отрицание, когато е поставена в началото на скобите. Следователно, тя е специален символ вътре в тези скоби. За да получите каретката като символ, трябва или да я екранирате, или да я преместите от първата позиция.

Пример

В следващия пример шаблонът за търсене е: първият символ е всичко освен 'd', следвани от две букви 'x':

pythontxt = 'axx bxx ^xx dxx'
res = re.sub('[^d]xx', '!', txt)

print(res)

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

python'! ! ! dxx'

Пример

А сега шаблонът за търсене е: първият символ е 'd' или '^', следвани от две букви 'x':

pythontxt = 'axx bxx ^xx dxx'
res = re.sub('[d^]xx', '!', txt)

print(res)

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

python'axx bxx ! !'

Пример

Можете да не премествате каретката от първата позиция, а просто да я екранирате с обратна наклонена черта, и тогава тя ще представлява самата себе си:

pythontxt = 'axx bxx ^xx dxx'
res = re.sub('[\^d]xx', '!', txt)

print(res)

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

python'axx bxx ! !'

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

Задание 1

Даден е низ:

pythontxt = '^xx axx ^zz bkk @ss'

Напишете регулярен израз, който ще намери низовете по шаблон: каретка или знак @, а след това две латински букви.

Задание 2

Даден е низ:

pythontxt = '^xx axx ^zz bkk @ss'

Напишете регулярен израз, който ще намери низовете по шаблон: НЕ каретка и не знак @, а след това две латински букви.

Задание 3

Даден е низ:

pythontxt = '^xx axx ^zz bkk'

Напишете регулярен израз, който ще намери низовете по шаблон: не каретка и не интервал, а след това две латински букви.