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

Hola a todos!. Tengo algunas dudas con las expresiones regulares de pyhton, lenguaje con el cual estoy empezando.

No entiendo el resultado que devuelven estos dos ejemplos ni su motivo. A ver si podeis ayudarme.

Por ejemplo, si yo defino la siguiente expresion regular:

er = re.compile(r"""
#Para explicar grupo
\b #límite de palabra
(\w* \s)
\b #limite de palabra
""", re.VERBOSE|re.U|re.I)

Y la siguiente frase unicode:

textoU = u"""hace una humedad del 95 %"""


y muestro de la siguiente manera las coincidencias:


print "elm_finditer:"
resultado=re.finditer(er,textoU)
for i in resultado:
print i.group()
print "---"

Me muestra por pantalla:

elm_finditer:
hace
una
humedad
del

Si de la expresión regular elimino el \s dejando solo \w*:

er = re.compile(r"""
#Para explicar grupo
\b #límite de palabra
(\w*)
\b #limite de palabra
""", re.VERBOSE|re.U|re.I)


Obtengo:

elm_finditer:
hace

una

humedad

del

95


Mis dudas son:

1- Si para el primer caso estoy diciendo que me muestre todas las palabras que van seguidas de espacio porque no muestra 95?.

2. Si el el segundo caso estoy diciendo que muestre todas las palabras, y las muestra, porque me crea espacios en la lista que devuelve, es decir porque no devuelve todas las palabras seguidas?.

3. Podrias explicarme exactamente para que se usa y el uso correcto de \b ?, porque me da que aunque lo use no lo debo tener muy claro...

Gracias a todos.