[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