我有以下文本块:
string = """
apples: 20
oranges: 30
ripe: yes
farmers:
elmer fudd
lives in tv
farmer ted
lives close
farmer bill
lives far
selling: yes
veggies:
carrots
potatoes
"""
我正在尝试找到一个好的正则表达式,它可以让我解析出键值。我可以通过以下方式获取单行键值:
'(.+?):\s(.+?)\n'
然而,当我打农民或蔬菜时,问题就来了。
使用 re 标志,我需要执行以下操作:
re.findall( '(.+?):\s(.+?)\n', string, re.S),
然而,我有一段时间抓住与农民相关的所有价值观。
每个值后面都有一个换行符,当它们是多行时,值之前有一个制表符或一系列制表符。
目标是拥有类似的东西:
{ 'apples': 20, 'farmers': ['elmer fudd', 'farmer ted'] }
等等
预先感谢您的帮助。