擅长:python、mysql、java
<p>您可以使用两个正则表达式一个用于名称,另一个用于项目,在第一个空格后应用一个:</p>
<pre><code>import re
lines = ['&{dict1_name}= key1=key1value key2=key2value',
'&{dict2_name}= key1=key1value']
name = re.compile('^&\{(\w+)\}=')
item = re.compile('(\w+)=(\w+)')
for line in lines:
n = name.search(line).group(1)
i = '{{{}}}'.format(','.join("'{}' : '{}'".format(m.group(1), m.group(2)) for m in item.finditer(' '.join(line.split()[1:]))))
exec('{} = {}'.format(n, i))
print(locals()[n])
</code></pre>
<p><strong>输出</strong></p>
^{pr2}$
<p><strong>说明</strong></p>
<p><code>'^&\{(\w+)\}='</code>匹配一个<code>'&'</code>,后跟一个由大括号<code>'\{', '\}'</code>包围的单词{<cd3>}。第二个regex匹配由<code>'='</code>连接的任何单词。行:</p>
^{3}$
<p>创建字典文本,最后使用<code>exec</code>创建具有所需名称的字典。您可以访问字典查询局部变量的值。在</p>