擅长:python、mysql、java
<p>我想你需要的是:</p>
<pre><code>import re
player_string = "player a 34 45 56 player b 38 93 75 playerc 39 29 18 playerd 38 98"
pattern = re.compile(r"([\w ]*?)\s+(\d+)\s+(\d+)\s+(\d+)")
matches = pattern.findall(player_string)
d = {}
for m in matches :
print m
d[m[0].strip()] = m[1:]
print d
</code></pre>
<p>在最后一个玩家“playerd”之后,你只有2个数字,而不是regex期望的3个。你知道吗</p>
<p>输出:</p>
<pre><code>{'playerc': ('39', '29', '18'), 'player b': ('38', '93', '75'), 'player a': ('34', '45', '56')}
</code></pre>