Simbolul caret în interiorul seturilor în expresiile regulate Python
După cum știți, simbolul caret în interiorul [ ]
face negație, atunci când este scris la
începutul parantezelor. Aceasta înseamnă că este un
caracter special în interiorul acestor paranteze. Pentru a
obține caret-ul ca simbol, trebuie fie să-l
escapați, fie să-l mutați de pe prima
poziție.
Exemplu
În următorul exemplu, modelul de căutare este:
primul caracter este orice în afară de 'd',
apoi două litere 'x':
txt = 'axx bxx ^xx dxx'
res = re.sub('[^d]xx', '!', txt)
print(res)
Ca rezultat, în variabilă se va scrie următoarele:
'! ! ! dxx'
Exemplu
Acum modelul de căutare este: primul
caracter este 'd' sau '^',
apoi două litere 'x':
txt = 'axx bxx ^xx dxx'
res = re.sub('[d^]xx', '!', txt)
print(res)
Ca rezultat, în variabilă se va scrie următoarele:
'axx bxx ! !'
Exemplu
Puteți să nu mutați caret-ul de pe prima poziție, ci pur și simplu să-l escapați folosind backslash-ul, iar el va reprezenta însuși simbolul:
txt = 'axx bxx ^xx dxx'
res = re.sub('[\^d]xx', '!', txt)
print(res)
Ca rezultat, în variabilă se va scrie următoarele:
'axx bxx ! !'
Probleme practice
Este dat șirul:
txt = '^xx axx ^zz bkk @ss'
Scrieți o expresie regulată care va găsi șirurile după modelul: caret sau at, apoi două litere latine.
Este dat șirul:
txt = '^xx axx ^zz bkk @ss'
Scrieți o expresie regulată care va găsi șirurile după modelul: NU caret și nu at, ci apoi două litere latine.
Este dat șirul:
txt = '^xx axx ^zz bkk'
Scrieți o expresie regulată care va găsi șirurile după modelul: nu caret și nu spațiu, ci apoi două litere latine.