您如何使以下正则表达式用于 pyparsing?它应该返回给定正则表达式的令牌列表。
任何帮助将不胜感激!谢谢!
shell中的python正则表达式示例:
>>> re.split("(\w+)(lab)(\d+)", "abclab1", 3)
>>> ['', 'abc', 'lab', '1', '']
我在 pyparsing 中尝试了这个,但我似乎无法弄清楚如何正确处理它,因为第一个匹配是贪婪的,即第一个标记将'abclab'
代替两个标记'abc'
和'lab'
.
pyparsing 示例(高级,即非工作代码):
name = 'abclab1'
location = Word(alphas).setResultsName('location')
lab = CaselessLiteral('lab').setResultsName('environment')
identifier = Word(nums).setResultsName('identifier')
expr = location + lab + identifier
match, start, end = expr.scanString(name).next()
print match.asDict()