Frage

Ich möchte den ersten Kommentarblock einer CSS -Datei extrahieren, die wie folgt ist:

/*
author : name
uri : link
etc
*/

ohne die anderen Kommentare zu extrahieren

/* header */
/* footer */

Also habe ich das versucht:

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

Dies gab mir alle anderen Kommentare außer dem Block, den ich brauche. Also habe ich es dazu geändert, genauer zu sein:

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

Und das Ergebnis war nichts:

[]

Haben Sie Vorschläge? Vielen Dank :-)

War es hilfreich?

Lösung 3

Du kannst das:

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

Andere Tipps

Wenn Sie nur den ersten Kommentar benötigen, können Sie einfach nur das erste Ergebnis verwenden:

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

Sie können auch verwenden re.search die nach dem ersten passenden Ereignis sucht:

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

Wenn Sie mit einer Multi -Line -Zeichenfolge übereinstimmen, müssen Sie erstellen. Match n auch:

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

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top