Inversión de conjuntos de caracteres en regex
Usando el símbolo de intercalación '^' al principio
de los corchetes se puede invertir
la búsqueda. Si, por ejemplo, el comando [ab]
busca la letra 'a' o 'b', entonces
el comando [^ab] buscará todos
los caracteres, excepto 'a' y 'b'.
Ejemplo
En este ejemplo, el patrón de búsqueda es
el siguiente: letra 'x', luego NO letra
'a', ni 'b', ni 'c',
después letra 'z':
txt = 'xaz xbz xcz xez'
res = re.sub('x[^abc]z', '!', txt)
print(res)
Resultado de la ejecución del código:
'xax xbx xcx !'
Ejemplo
En este ejemplo, el patrón de búsqueda es
el siguiente: letra 'x', luego NO letra
minúscula latina, después letra 'z':
txt = 'xaz xbz x1z xCz'
res = re.sub('x[^a-z]z', '!', txt)
print(res)
Resultado de la ejecución del código:
'xaz xbz ! !'
Problemas prácticos
Escribe una expresión regular que encuentre las cadenas
según el patrón: dígito 1, luego carácter
que no sea 'e' ni 'x', dígito
2.
Escribe una expresión regular que encuentre las cadenas
según el patrón: letra 'x', luego NO
dígito del 2 al 7, letra
'z'.
Escribe una expresión regular que encuentre las cadenas
según el patrón: letra 'x', luego NO
letra latina mayúscula del 1 o más
veces, letra 'z'.
Escribe una expresión regular que encuentre las cadenas
según el patrón: letra 'x', luego NO
letra latina mayúscula o minúscula y
no dígito del 1 al 5 del 1
o más veces, letra 'z'.