Python 使用pyparsing分析给定范围内的数字

Python 使用pyparsing分析给定范围内的数字,python,pyparsing,Python,Pyparsing,如何使用pyparsing提取给定范围内的数字? 我试过: 我想要的是: [['10'], ['11']] 更具体的例子: 我想提取所有看起来像日期一部分的数字,而忽略其他数字。 因此,从这个输入: """ This is a date: 12 03 2008 This too: 03 12 2008 And this not, values are too large: 123 333 11 """ 我想得到: [[12, 3, 2008], [3, 12, 2008]] 这里的主要问题

如何使用pyparsing提取给定范围内的数字? 我试过:

我想要的是:

[['10'], ['11']]
更具体的例子: 我想提取所有看起来像日期一部分的数字,而忽略其他数字。 因此,从这个输入:

"""
This is a date: 12 03 2008
This too: 03 12 2008
And this not, values are too large: 123 333 11
"""
我想得到:

[[12, 3, 2008], [3, 12, 2008]]

这里的主要问题是searchString(和底层scanString)逐个字符地遍历输入字符串以查找匹配项。因此,在您的输入中(参考位置标题):

As关键字仅当表达式位于空格分隔的单词开头时,才强制表达式匹配。在您的情况下,这将防止意外解析'23'中的'3',以及'14'中的'4',等等。这将为您提供所需的
[['10'],['11']]
结果

"""
This is a date: 12 03 2008
This too: 03 12 2008
And this not, values are too large: 123 333 11
"""
[[12, 3, 2008], [3, 12, 2008]]
          1
012345678901234 <- position
10 23 11 14 115
number = Word(nums, asKeyword=True)