2012-07-27 23 views
9

¿Hay una bandera o alguna tecla especial en python para usar el patrón varias veces? Solía ​​probar http://gskinner.com/RegExr/ mi RegExp, funcionaba correctamente en él. Pero cuando se prueba en la coincidencia de entorno correcto solo devuelve Ninguno.Python RegExp bandera global

import re 
pattern = r"(?P<date>--\d\d-\w+:\d\d)[ \t]+(?P<user>\w+)[ \t]+(?P<method>[\w ]+)[\" ]* (?P<file>[\w\\:\.]+)@@(?P<version>[\w\\]+)[\" ]*(?P<labels>[\(\w, \.\)]+){0,1}[\s \"]*(?P<comment>[\w \.-]+){0,1}[\"]" 
base = """ 
--02-21T11:22 user3 create version "W:\foo\bar\[email protected]@\main\1" (label1, label2, label3, label22, label33, ...) 

"merge in new bat-based fooz installer" 

--02-21T11:22 user1 create version "W:\foo\bar\[email protected]@\main\0" 

--02-21T11:22 user2 create branch "W:\foo\bar\[email protected]@\main\" 

"merge in new bat-based fooz installer" 

--02-13T11:22 user1 create version  "W:\foo\bar\[email protected]@\main\1" 

    "Made to use new fooz.bat" 

""" 
r = re.match(pattern, base) 
print(r) 

Respuesta

21

re.match intenta hacer coincidir el patrón al inicio de la cadena. Está buscando re.search, re.findall o re.finditer

+0

're.finditer' funciona como es necesario. Gracias. – Metsavaht