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

È stato utile?

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)

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top