擅长:python、mysql、java
<p>这不是正则表达式,但它快速而简洁:</p>
<pre><code>s = "AB123CD"
first = [i for i, a in enumerate(s) if a.isdigit()][0]
second = [i for i, a in enumerate(s) if a.isdigit()][-1]
new_form = s[:first]+"-"+s[first:second+1]+"-"+s[second+1:]
</code></pre>
<p>输出:</p>
<pre><code>AB-123-CD
</code></pre>
<p>替代正则表达式解决方案:</p>
<pre><code>letters = re.findall("[a-zA-Z]+", s)
numbers = re.findall("[0-9]+", s)
letters.insert(1, numbers[0])
final = '-'.join(letters)
print(final)
</code></pre>
<p>输出:</p>
<pre><code>AB-123-CD
</code></pre>