Chcę być w stanie wyciągnąć typ i liczbę liter z fragmentu tekstu, gdzie litery mogą być w dowolnej kolejności. Jest jeszcze kilka innych analiz, nad którymi pracuję, ale ten kawałek mnie zaskoczył!Pyparsing - gdzie kolejność tokenów nieprzewidywalnych
input -> result
"abc" -> [['a',1], ['b',1],['c',1]]
"bbbc" -> [['b',3],['c',1]]
"cccaa" -> [['a',2],['c',3]]
Mogę użyć wyszukiwania lub skanowania i powtórzyć dla każdej możliwej litery, ale czy istnieje czysty sposób to zrobić?
To ile mam:
from pyparsing import *
def handleStuff(string, location, tokens):
return [tokens[0][0], len(tokens[0])]
stype = Word("abc").setParseAction(handleStuff)
section = ZeroOrMore(stype("stype"))
print section.parseString("abc").dump()
print section.parseString("aabcc").dump()
print section.parseString("bbaaa").dump()
Tak, znaki są zgrupowane, więc jest to idealne. Dzięki za rozwiązanie i wyjaśnienie. Kochanie pyparsing! – PhoebeB