Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
pyparsing [2015/04/15 06:55] root angelegt |
pyparsing [2016/05/15 11:10] (aktuell) root [Dokuwiki-Tabelle parsen] |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== 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 " | ||
| + | |||
| + | ===== parseString ===== | ||
| + | |||
| + | * Parst eine übergebene Zeichenkette anhand des vorher definierten Musters/ | ||
| + | * gibt ein Objekt vom Typ ParseResults zurück welches die einzelnen Elemente/ | ||
| + | |||
| + | |||
| + | Syntax: Objekt.parseString(// | ||
| + | |||
| + | Beispiel: | ||
| + | < | ||
| + | import pyparsing as pp | ||
| + | a=pp.OneOrMore(pp.Word(pp.alphanums + " " | ||
| + | result=a.parseString(" | ||
| + | print result | ||
| + | </ | ||
| + | Ergebnis: ParseResult-Objekt (verhält sich wie eine Liste) -> [" | ||
| + | |||
| + | ====== Klassen/ | ||
| + | |||
| + | ===== Parser ===== | ||
| + | |||
| + | Pyparser kennt verschiedene Parser. | ||
| + | |||
| + | ==== parseString ==== | ||
| + | |||
| + | **Definition: | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Hilfsklassen ===== | ||
| + | |||
| + | |||
| + | |||
| + | |||
| ====== Infos ====== | ====== Infos ====== | ||
| * http:// | * http:// | ||
| + | |||
| + | |||
| + | |||
| + | ====== Umsetzungen ====== | ||
| + | |||
| + | ===== Dokuwiki-Tabelle parsen ===== | ||
| + | |||
| + | |||
| + | **Überschrift**: | ||
| + | |||
| + | < | ||
| + | a=" | ||
| + | parser=pp.Word(pp.alphanums+" | ||
| + | list=pp.Suppress(' | ||
| + | list.parseString(a) | ||
| + | </ | ||
| + | |||
| + | |||
| + | **Inhalt**: | ||
| + | |||
| + | < | ||
| + | a=" | ||
| + | parser=pp.Word(pp.alphanums+" | ||
| + | list=pp.Suppress(' | ||
| + | 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 " | ||