3
我试图把它用pyparsing
的成分解析部分标准化的街道地址。我想要非贪婪地匹配一个可能是N个令牌的街道名称。PyParsing非贪婪匹配
例如:
444 PARK GARDEN LN
应该被解析成:
number: 444
street: PARK GARDEN
suffix: LN
我将如何做到这一点与PyParsing?这是我最初的代码:
from pyparsing import *
def main():
street_number = Word(nums).setResultsName('street_number')
street_suffix = oneOf("ST RD DR LN AVE WAY").setResultsName('street_suffix')
street_name = OneOrMore(Word(alphas)).setResultsName('street_name')
address = street_number + street_name + street_suffix
result = address.parseString("444 PARK GARDEN LN")
print result.dump()
if __name__ == '__main__':
main()
但是当我试图解析它,街道后缀得到由默认的贪婪解析行为吞并。
很不错的答案,希望我可以给第二个给予好评的替代形式'setResultsName'尖端。到OP:解析街道地址极为复杂,有在pyparsing维基(http://pyparsing.wikispaces.com/file/view/streetAddressParser.py/135329743/streetAddressParser.py)可能给你更多的样本一个跳跃的开始。 – PaulMcG 2013-04-30 04:37:42