Benutzer-Werkzeuge

Webseiten-Werkzeuge


pyparsing

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
    • dieses Zeichenkette-Pyparsing-Objekt Mischmasch wird dann als Muster auf den zu parsenden String gelegt
    • Verkettung kann u.a. per „+“ erfolgen → „logisch und“

parseString

  • Parst eine übergebene Zeichenkette anhand des vorher definierten Musters/Patterns
  • gibt ein Objekt vom Typ ParseResults zurück welches die einzelnen Elemente/Felder als Liste enthält

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

Definition:

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
pyparsing.txt · Zuletzt geändert: 2016/05/15 11:10 von root