Alle Farbangaben aus CSS Datei auflisten...

Code-Stücke können hier veröffentlicht werden.
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Brauchte mal eine Filtermöglichkeit um nur die Farbangaben aus einer CSS Datei zu bekommen:

Code: Alles auswählen

import re

txt = open("/path/to/foobar.css","r").read()

txt = re.sub("/\*.*?\*/(?s)", "", txt) # remove /* multi line */ comments
txt = re.sub("//.*?(?m)", "", txt) # remove // single line comments

regex = re.compile(
    r"""
    (?P<name>.*?)
    \{
    (?P<data>.*?)
    \}""",
    re.IGNORECASE | re.VERBOSE | re.UNICODE
)

for match in regex.finditer(txt):
    css_data = match.group("data")
    if not "color" in css_data:
        continue

    print("%s {" % match.group("name"))

    for part in css_data.split(";"):
        if "color" in part:
            print("\t%s;" % part)

    print("}")
auch hier: https://gist.github.com/jedie/379c25305185183da0b8
Zuletzt geändert von Anonymous am Donnerstag 30. April 2015, 10:17, insgesamt 1-mal geändert.
Grund: Quelltext korrigiert.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
BlackJack

@jens: Zeichenketten berücksichtigst Du nicht. :-)
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Was meinst du?!?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
BlackJack

@jens: 'color' kann auch als Teil einer Zeichenkette vorkommen. Ausserdem kann es verschachtelte Sachen geben in denen das Wort 'color' zum Beispiel als Teil eines Selektors vorkommt. Beispiel mit beiden Fällen:

Code: Alles auswählen

@media print {
    dd.color:before {
        content: 'color: ';
    }
}
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ah, ok... Naja, ich wollte den Aufwand nicht zu hoch treiben ;)

Genutzt habe ich es nun eh nicht :lol:

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten