Puoi farlo:
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()
Domanda
Vorrei estrarre il primo blocco di commenti di un file CSS che è così:
/*
author : name
uri : link
etc
*/
Senza estrarre gli altri commenti
/* header */
/* footer */
Quindi ho provato questo:
print re.findall(r'\/\*(.*)\*\/', cssText )
Questo mi ha dato tutti gli altri commenti tranne il blocco di cui ho bisogno. Quindi l'ho cambiato in questo, per essere più preciso:
print re.findall(r'\/\*\n(.*)^\*\/', cssText )
E il risultato non è stato niente:
[]
Hai suggerimenti? Grazie :-)
Soluzione 3
Puoi farlo:
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()
Altri suggerimenti
Se hai bisogno solo del primo commento, puoi semplicemente utilizzare il primo risultato:
print re.findall(r'\/\*(.*)\*\/', cssText )[0]
Puoi anche usare re.search
che cerca il primo occorrenza corrispondente:
print re.search(r'\/\*(.*)\*\/', cssText )
Quando abbini la stringa multiple, devi fare. Match n anche:
print re.findall(r'\/\*\n(.*?)\*\/', cssText, re.S)