擅长:python、mysql、java
<p>以下是使用单个正则表达式执行此操作的两种方法:</p>
<ul>
<li><p>使用条件模式。捕获<code>\1</code>很简单。Capture<code>\4</code>检查我们是抓取<code>\2</code>还是{<cd4>},然后相应地定义模式的其余部分。在</p>
<pre><code>re.sub(r'((\d)|([a-z])) ((?(2)[a-z]|\d))', r'\1\n\4', s)
</code></pre></li>
<li><p>只替换空格,并用lookbehind和lookahead断言包围它。在</p>
<pre><code>re.sub(r'(?<=\d) (?=[a-z])|(?<=[a-z]) (?=\d)', '\n', s)
</code></pre></li>
</ul>
<p>但是你的两个简单正则表达式比这些废话要好。在</p>