Estoy tratando de extraer todas las apariciones de palabras etiquetadas de una cadena utilizando expresiones regulares en Python 2.7.2. O simplemente, quiero extraer cada fragmento de texto dentro de las etiquetas [p][/p]
. Aquí es mi intento:Python regex findall
regex = ur"[\u005B1P\u005D.+?\u005B\u002FP\u005D]+?"
line = "President [P] Barack Obama [/P] met Microsoft founder [P] Bill Gates [/P], yesterday."
person = re.findall(pattern, line)
impresión person
produce ['President [P]', '[/P]', '[P] Bill Gates [/P]']
¿Cuál es la expresión regular correcta para obtener: ['[P] Barack Obama [/P]', '[P] Bill Gates [/p]']
o ['Barrack Obama', 'Bill Gates']
.
Gracias. :)
me gusta mucho esta respuesta. Si desea procesar solo las coincidencias, esto lo hace sin ninguna declaración adicional, como 1) guardar la lista, 2) procesar la lista no es equivalente a str = 'purple [email protected], blah monkey [email protected] bla 'lavavajillas' ## Aquí re.findall() devuelve una lista de todas las cadenas de correo electrónico encontradas correos electrónicos = re.findall (r '[\ w \ .-] + @ [\ w \ .-] +', str) ## ['[email protected]', 'bob @ abc.com '] para correo electrónico en correos electrónicos: # hacer algo con cada cadena de correo electrónico encontrado imprimir correo electrónico – kkron