Expresiones regulares en python

  • Published on
    26-Jul-2015

  • View
    125

  • Download
    0

Embed Size (px)

Transcript

1. Semiramis Castro Laboratorio de Genmica Evolutiva Licenciatura en CienciasGenmicas - CCG UNAM Febrero 2015 2. Introduccin Caracteres especiales Cuantificadores y posiciones Agrupamiento y alternativas Escape de caracteres Comprobar equivalencias Encontrar patrones Compilar Sustituciones Subcadenas 3. Las expresiones regulares nos sirven para encontrar patrones dentro de una cadena (string) Es necesario escapar algunos caracteres especiales Existen distintas funciones para cada propsito: encontrar, sustituir, etc. Se encuentran en el mdulo re 4. Smbolo Significado . Cualquier caracter, excepto n d Cualquier dgito D Cualquier caracter que NO sea dgito w Cualquier caracter alfanumrico W Cualquier caracter que NO sea alfanumrico s Espacio en blanco S Cualquier caracter que NO sea espacio t Tabulador n Salto de lnea (Unix) 5. Smbolo Significado ? Cero o una vez * Cero o ms veces + Una o ms veces { n } "n" es un nmero que indica la cantidad exacta de veces { x, y } Mnimo y mximo de ocurrencias ^ Inicio de cadena $ Final de cadena 6. Smbolo(s) Uso ( ) Aislar un grupo de caracteres [ ] Expresar rangos (nmeros, letras, etc) | Nos permite elegir entre alternativas 7. cadena="Hola, Mundo. Empecemos" patronParaEncontrarSaludo="^w+,sw+..*" secuencia="CCTAGGCTT" opcionesADN="A|T|C|G" opcionesARN="A|U|C|G" 8. Cuando queremos usar o referirnos a un caracter especial le anteponemos una diagonal invertida .py ( 9. match(patrn, cadena, flag) flag Significado re.IGNORECASE No distingue entre maysculas y minsculas re.VERBOSE Ignorar comentarios y espacios en la expresin 10. cadena="Hola, Mundo. Empecemos" patron="^w+,sw+..*" if re.match(patron, cadena): print("Primero saludaste al mundo") cadena1="Hola" cadena2="hola" if re.match(cadena1, cadena2,re.IGNORECASE): print("Me dijiste Hola") 11. search(patrn, cadena, flag) cadena="Hola, Mundo. Empecemos" patron="^w+,sw+..*" if re.search(patron, cadena): print("Lo encontramos") 12. findall(patrn, cadena, flag) devuelve una lista con todas las sub-cadenas que cumplan con el patrn secuencia="TTGAATTCGCTCGAG" EcoRI_XhoI="(GAATTC|CTCGAG)" sitios=re.findall(EcoRI_XhoI, secuencia) print(sitios) 13. finditer(patrn, cadena, flag) devuelve tuplas con las posiciones de las sub-cadenas que cumplan con el patrn secuencia="TTGAATTCGCTCGAGAATTCG" EcoRI="(GAATTC|CTTAAG)" posiciones=re.finditer(EcoRI, secuencia) for coordenadas in posiciones: print(coordenadas.span()) 14. compile() nos devuelve un objeto tipo RegexObject Es un paso previo para ciertos mtodos Hace que se lleve a cabo la evaluacin de la expresin regular 15. sub(conQu, aQuin) uracilos=re.compile("(U|u)+") secuencia="AUGAUGGGUAUUU" ADN=uracilos.sub("T", secuencia) print(ADN) secuencia="AUGAUGGGUAUUU" ADN=re.compile("(U|u)+").sub("T", secuencia) print(ADN) 16. subn(conQu, aQuin) devuelve una tupla con la cadena con los cambios y la cantidad de sustituciones realizadas secuencia="AUGAUGGGUAUUU" tuplaADN=re.compile("(U|u)+").subn("T", secuencia) print(tuplaADN[0]) print(tuplaADN[1]) 17. split(cadena, mximo) codones="atcaug.ccg.gga.ttc" print(re.compile(".").split(codones, maxsplit=2))