Parser
Die Parser sind Methoden die nahezu alle Klassen in PyParser implementiert haben
man kann mehrere Zeichenketten und PyParser-Obejkte hintereinander schreiben → zusammen sind sie dann ein Objekt einer PyParsing-Klasse
parseString
Syntax: Objekt.parseString(zuparsenderString)
Beispiel:
import pyparsing as pp
a=pp.OneOrMore(pp.Word(pp.alphanums + " ")+"|")
result=a.parseString("Erste Spalte|ZweiteSpalte|DritteSpalte|")
print result
Ergebnis: ParseResult-Objekt (verhält sich wie eine Liste) → [„Erste Spalte“,„|“,„ZweiteSpalte“,„|“,„DritteSpalte“,|„|“]
Klassen/Parser
Parser
Pyparser kennt verschiedene Parser.
parseString
Hilfsklassen
Infos
Umsetzungen
Dokuwiki-Tabelle parsen
Überschrift:
a="^Größe ^Hufbreite mm ^Huflänge mm ^Gewicht g ^Besonderheiten ^"
parser=pp.Word(pp.alphanums+" "+"#"+"-"+"ä"+"ü"+"ö")
list=pp.Suppress('^')+pp.delimitedList(parser,"^")
list.parseString(a)
Inhalt:
a="|#00 |100 - 108 |104 - 116 |320 | |"
parser=pp.Word(pp.alphanums+" "+"#"+"-")
list=pp.Suppress('|')+pp.delimitedList(parser,"|")
list.parseString(a)
Variable a enthält die zu parsende Zeile
parser definiert welche Zeichen als ein Wort betrachtet werden - das müsste eventuell erweitert werden, da nicht alle Sonderzeichen und ggf. Unicode-Zeichen abgedeckt sind
list enthält den eigentlichen Parser - bestehend aus Supress welches den führenden „|“ der Tabelle unterdrückt (da delimitedList einen Delimiter nicht als erstes Zeichen erwartet) und der Funktion DelimitedList welche anahnd eines delimiters/Trenners (in diesem Fall „|“) eine Zeichenkette in einzelne Felder aufspaltet und die Felder zwischen den Trennern („|“) jeweils als ein Element einer Liste speichert