擅长:python、mysql、java
<p>可以使用<a href="https://docs.python.org/3/library/re.html#re.sub" rel="nofollow noreferrer">^{<cd1>}</a>插入该空格:</p>
<pre><code>re.sub(r'\b(?:(\D+)(\d+)|(\d+)(\D+))\b', r"\1\3 \2\4", word)
</code></pre>
<p>这与数字后跟非数字匹配,反之亦然。你知道吗</p>
<p><code>\b</code>边界确保单词的整体匹配,这样我们就不会匹配单词中间的数字。你知道吗</p>
<p>替换模式<code>\1\3 \2\4</code>利用了不匹配的组被空字符串替换的事实。我们知道<em>第1组和第2组<em>或第3组和第4组将匹配,其他组将为空,因此<code>\1\3 \2\4</code>将始终生成有效的结果(不复制输入的任何部分)。你知道吗</p>
<hr/>
<p>示例:</p>
<pre><code>>>> re.sub(r'\b(?:(\D+)(\d+)|(\d+)(\D+))\b', r"\1\3 \2\4", "abc12")
'abc 12'
>>> re.sub(r'\b(?:(\D+)(\d+)|(\d+)(\D+))\b', r"\1\3 \2\4", "12abc")
'12 abc'
>>> re.sub(r'\b(?:(\D+)(\d+)|(\d+)(\D+))\b', r"\1\3 \2\4", "a12bc")
'a12bc'
</code></pre>