我正在尝试像Base: Lote Numero 1, Marcelo T de Alvear 500. Demanda: otras palabras.
我想要的那样解析一个句子:首先,用句点分割文本,然后,使用冒号之前的任何内容作为冒号label
之后的句子。现在我有以下定义:
from pyparsing import *
unicode_printables = u''.join(unichr(c) for c in xrange(65536)
if not unichr(c).isspace())
def parse_test(text):
label = Word(alphas)+Suppress(':')
value = OneOrMore(Word(unicode_printables)|Literal(','))
group = Group(label.setResultsName('label')+value.setResultsName('value'))
exp = delimitedList(
group,
delim='.'
)
return exp.parseString(text)
和一种作品,但它放弃了 unicode 字符(以及任何不在字母数字中的字符),我想我希望有value
一个完整的句子而不是这个:'value': [(([u'Lote', u'Numero', u'1', ',', u'Marcelo', u'T', u'de', u'Alvear', u'500'], {}), 1)
。
有一个简单的方法来解决这个问题吗?