Символът каретка вътре в набори в регулярни изрази на Python
Както знаете, каретката вътре в [ ]
означава отрицание, когато е поставена в
началото на скобите. Следователно, тя е
специален символ вътре в тези скоби. За да
получите каретката като символ, трябва или
да я екранирате, или да я преместите от първата
позиция.
Пример
В следващия пример шаблонът за търсене е:
първият символ е всичко освен 'd',
следвани от две букви 'x':
txt = 'axx bxx ^xx dxx'
res = re.sub('[^d]xx', '!', txt)
print(res)
В резултат в променливата ще бъде записано следното:
'! ! ! dxx'
Пример
А сега шаблонът за търсене е: първият
символ е 'd' или '^',
следвани от две букви 'x':
txt = 'axx bxx ^xx dxx'
res = re.sub('[d^]xx', '!', txt)
print(res)
В резултат в променливата ще бъде записано следното:
'axx bxx ! !'
Пример
Можете да не премествате каретката от първата позиция, а просто да я екранирате с обратна наклонена черта, и тогава тя ще представлява самата себе си:
txt = 'axx bxx ^xx dxx'
res = re.sub('[\^d]xx', '!', txt)
print(res)
В резултат в променливата ще бъде записано следното:
'axx bxx ! !'
Практически задачи
Даден е низ:
txt = '^xx axx ^zz bkk @ss'
Напишете регулярен израз, който ще намери низовете по шаблон: каретка или знак @, а след това две латински букви.
Даден е низ:
txt = '^xx axx ^zz bkk @ss'
Напишете регулярен израз, който ще намери низовете по шаблон: НЕ каретка и не знак @, а след това две латински букви.
Даден е низ:
txt = '^xx axx ^zz bkk'
Напишете регулярен израз, който ще намери низовете по шаблон: не каретка и не интервал, а след това две латински букви.