El símbolo de acento circunflejo dentro de conjuntos en expresiones regulares de Python
Como sabes, el acento circunflejo dentro de [ ]
crea una negación cuando se escribe al
principio de los corchetes. Por lo tanto, es un
carácter especial dentro de estos corchetes. Para
obtener el acento circunflejo como carácter, es necesario
o escaparlo, o quitarlo de la primera posición.
Ejemplo
En el siguiente ejemplo, el patrón de búsqueda es:
el primer carácter es todo excepto 'd',
luego dos letras 'x':
txt = 'axx bxx ^xx dxx'
res = re.sub('[^d]xx', '!', txt)
print(res)
Como resultado, se guardará en la variable lo siguiente:
'! ! ! dxx'
Ejemplo
Y ahora el patrón de búsqueda es: el primer
carácter es 'd' o '^',
luego dos letras 'x':
txt = 'axx bxx ^xx dxx'
res = re.sub('[d^]xx', '!', txt)
print(res)
Como resultado, se guardará en la variable lo siguiente:
'axx bxx ! !'
Ejemplo
No es necesario quitar el acento circunflejo de la primera posición, simplemente se puede escapar usando la barra invertida, y entonces representará al propio carácter:
txt = 'axx bxx ^xx dxx'
res = re.sub('[\^d]xx', '!', txt)
print(res)
Como resultado, se guardará en la variable lo siguiente:
'axx bxx ! !'
Problemas prácticos
Dada la cadena:
txt = '^xx axx ^zz bkk @ss'
Escriba una expresión regular que encuentre las cadenas según el patrón: acento circunflejo o arroba, y luego dos letras latinas.
Dada la cadena:
txt = '^xx axx ^zz bkk @ss'
Escriba una expresión regular que encuentre las cadenas según el patrón: NO acento circunflejo ni arroba, y luego dos letras latinas.
Dada la cadena:
txt = '^xx axx ^zz bkk'
Escriba una expresión regular que encuentre las cadenas según el patrón: ni acento circunflejo ni espacio, y luego dos letras latinas.