擅长:python、mysql、java
<p>这样就可以了:</p>
<pre><code>ins='''\
we spend 100year
today i'm200 pound
he maybe have212cm'''
for line in ins.splitlines():
line=re.sub(r'\s*(\d+)\s*',r' \1 ', line)
print line
</code></pre>
<p>印刷品:</p>
<pre><code>we spend 100 year
today i'm 200 pound
he maybe have 212 cm
</code></pre>
<p>同一行文本中多个匹配项的相同语法:</p>
<pre><code>>>> re.sub(r'\s*(\d+)\s*',r' \1 ', "we spend 100year + today i'm200 pound")
"we spend 100 year + today i'm 200 pound"
</code></pre>
<p>捕获组(通常)从左到右编号,<code>\number</code>表示匹配中的每个编号组:</p>
<pre><code>>>> re.sub(r'(\d)(\d)(\d)',r'\2\3\1','567')
'675'
</code></pre>
<p>如果更容易阅读,您可以命名捕获组,而不是使用<code>\1 \2</code>表示法:</p>
<pre><code>>>> line="we spend 100year today i'm200 pound"
>>> re.sub(r'\s*(?P<nums>\d+)\s*',r' \g<nums> ',line)
"we spend 100 year today i'm 200 pound"
</code></pre>