[pyar] Presentación (y consulta)

Facundo Batista facundobatista en gmail.com
Lun Ago 7 11:36:55 ART 2017


2017-08-07 10:38 GMT-03:00 Guillermo Movia <guillermo.movia en gmail.com>:

>>     Gracias a la ayuda de algunos en el canal de IRC pasé de abrirlo en
>>     forma texto a bytes. No creo que se puedan enviar adjuntos por acá, pero
>>     si alguno quiere el txt para probar, lo puedo dejar en algún lado.

No entiendo por qué lo querés pasar a bytes. Si vas a estar trabajando
con texto, es buena idea trabajar con unicode.


>>     1) Imagino que la conversión que hago a texto no es necesaria y podría
>>     hacerlo todo con bytes. Lo convertí a texto porque .sub() me pedía
>>     cadenas.

Como dijo Rolando antes, los patrones de expresiones regulares que
armes los podés armar tanto "de bytes" como de "caracteres unicode",
tanto para matchear/buscar/reemplazar en bytes como en unicode,
correspondientemente.


>>     2) Las notas al pie, en el texto, aparecen como "1." o "2." (sin las
>>     comillas) y para seguir el formato de markdown debería convertirlas a
>>     "[^1]:", por lo que entendí, podría hacer esa transformación con los
>>     grupos, pero todavía no terminé de entender bien esa parte, ¿es posible
>>     con grupos?¿hay una forma mejor?

Con grupos está bien:

>>> re.sub("^(\d+)\. ", "\\1: ", "1. bleh")
'1: bleh'
>>> re.sub("^(\d+)\. ", "\\1: ", "2. bleh")
'2: bleh'

Fijate que en el patrón, estoy rodeando al \d+ con paréntesis, eso
hace que arme un grupo, y luego lo referenciamos en el reemplazo con
"\\1" (notar la doble barra invertida, ya que para referenciarlo
necesitás una, la segunda es para escaparla).

También podrías usar grupos "con nombre" y hacer referencia con el
nombre, pero así por posición es suficiente para esto.

Slds.

-- 
.    Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/
Twitter: @facundobatista


Más información sobre la lista de distribución pyar