我希望能夠從一段文本中提取字母的類型和數量,其中的字母可以按任意順序排列。還有一些其他解析正在進行中,但這一點讓我難住了!Pyparsing - 不可預知的令牌順序
input -> result
"abc" -> [['a',1], ['b',1],['c',1]]
"bbbc" -> [['b',3],['c',1]]
"cccaa" -> [['a',2],['c',3]]
我可以使用搜索或掃描和重複每個可能的字母,但有這樣做的一個乾淨的方式?
這是據我得到:
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()
是的,字符被分組,所以這是完美的。感謝您的解答和解釋。喜歡pyparsing! – PhoebeB 2010-01-26 12:05:13