Pregunta

Me gustaría extraer el primer bloque de comentarios de un archivo CSS que es así:

/*
author : name
uri : link
etc
*/

sin extraer los otros comentarios

/* header */
/* footer */

Así que probé esto:

print re.findall(r'\/\*(.*)\*\/', cssText )

Esto me dio todos los otros comentarios, excepto el bloque que necesito. Así que lo cambié en esto, para ser más precisos:

print re.findall(r'\/\*\n(.*)^\*\/', cssText )

Y el resultado no fue nada:

[]

¿Tienes sugerencias? Gracias :-)

¿Fue útil?

Solución 3

Puedes hacerlo:

css = """
/*
author : name
uri : link
etc
*/

bla bla bla. Blah blah
x: 10;
color: red;

/* header */
/* footer */
"""

import re

pat = r'\/\*([\S\s]*?)\*\/'

print re.findall(pat, css)
print re.search(pat, css).group()

Otros consejos

Si solo necesita el primer comentario, simplemente puede usar el primer resultado:

print re.findall(r'\/\*(.*)\*\/', cssText )[0]

También puedes usar re.search que busca la primera ocurrencia de coincidencia:

print re.search(r'\/\*(.*)\*\/', cssText )

Cuando combina la cadena de múltiples líneas, debe hacer. Match n también:

print re.findall(r'\/\*\n(.*?)\*\/', cssText, re.S)

ver:http://docs.python.org/2/library/re.html#re.s

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top