Ver Mensaje Individual
  #6 (permalink)  
Antiguo 23/04/2011, 12:26
javie_85
 
Fecha de Ingreso: enero-2011
Mensajes: 23
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Duda python Expresiones Regulares

razpeitia gracias por la ayuda, pero creo que sigo sin entender lo del espacio... Si que entiendo la diferencia de poner el \s y no ponerlo, si lo pongo básicamente entiendo que el \s forma parte de la cadena que busco. Ahora bien no entiendo por ejemplo porque si uso en la ER \b\w*\b me aparecen lineas en blanco en la salida del print y si uso \b\w+\b no.

A su vez he probado a introducir este texto en un fichero:
Código Python:
Ver original
  1. #coding: utf-8
  2. import re
  3. import codecs
  4.  
  5. er = re.compile(r"""
  6. #Para explicar grupo
  7. \b #límite de palabra
  8. (\w*)
  9. \b #limite de palabra
  10. """, re.VERBOSE|re.U|re.I)
  11.  
  12. textoU = u"""hace una humedad del 95 %"""
  13.  
  14.  
  15. print "elm_finditer:"
  16. resultado=re.finditer(er,textoU)
  17. for i in resultado:
  18.     print i.group()
  19. print "---"
  20.  
  21.  
  22. lista =  er.sub(r"""\1\n""",textoU)
  23.  
  24. f_salida= codecs.open("fich_prueba5.txt",'w',"utf-8")
  25. for j in lista:
  26.     f_salida.write(j)
  27. f_salida.close


y he visto que me devuelve un fichero de esta forma, independientemente de si he usado el \b\w+\b o el \b\w*\b.
Código Python:
Ver original
  1. hace
  2.  una
  3.  humedad
  4.  del
  5.  95
  6.  %


Me mete un espacio delante de las palabras a partir de la primera, eso a que se debe?.

Por cierto para que me sirve a mi el repr()?.

Muchas gracias, como ves estoy hecho un lio...