Tôi muốn có thể lấy loại và số lượng chữ cái từ một đoạn văn bản trong đó các chữ cái có thể theo thứ tự bất kỳ. Có một số phân tích cú pháp khác đang diễn ra mà tôi đã làm việc, nhưng bit này đã khiến tôi bối rối!Pyparsing - nơi đặt mã thông báo không thể đoán trước
input -> result
"abc" -> [['a',1], ['b',1],['c',1]]
"bbbc" -> [['b',3],['c',1]]
"cccaa" -> [['a',2],['c',3]]
Tôi có thể sử dụng tìm kiếm hoặc quét và lặp lại cho từng chữ cái có thể, nhưng có cách nào để làm việc đó không?
Đây là như xa như tôi nhận:
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()
Có các ký tự được nhóm lại để điều này hoàn hảo. Cảm ơn các giải pháp và giải thích. Loving pyparsing! – PhoebeB