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()
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 :-)
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)