Distinguir correspondências em pyparsing
Eu quero analisar algumas palavras e alguns números com pyparsing. Direito simples.
from pyparsing import *
A = Word(nums).setResultsName('A')
B = Word(alphas).setResultsName('B')
expr = OneOrMore(A | B)
result = expr.parseString("123 abc 456 7 d")
print result
O código acima é impresso['123', 'abc', '456', '7', 'd']
. Então, tudo funcionou. Agora eu quero trabalhar com esses valores analisados. Para esta tarefa, preciso saber se eles correspondemA
ouB
. Existe uma maneira de distinguir entre esses dois.
A única coisa que encontrei após algumas pesquisas foi aitems
método doParseResults
classe. Mas só retorna[('A', '7'), ('B', 'd')]
, apenas as duas últimas correspondências.
Meu plano / objetivo é o seguinte:
for elem in result:
if elem.is_of_type('A'):
# do stuff
elif elem.is_of_type('B'):
# do something else
Como faço para distinguir entreA
eB
?