擅长:python、mysql、java
<p>您可以使用3个<strong>捕获组<strong>并使用中间组捕获<em>连接</em>角色。使用<em>连接</em>字符搜索分隔符列表并获得所需的输出:</p>
<pre><code>import re
word_list=['word', 'kap1', 'another word', 'abc-123', 'another-1 word', 'another word 1']
reg = re.compile(r'^([a-zA-Z]+)([- ]?)([0-9]+)$')
for w in word_list:
m = reg.match(w)
if m:
result = []
seps = ['', ' ', '-']
seps.remove(m.group(2))
for s in seps:
result += [m.group(1) + s + m.group(3)]
print result
</code></pre>
<p><strong>输出:</strong></p>
<pre><code>['kap 1', 'kap-1']
['abc123', 'abc 123']
</code></pre>
<p><a href="http://ideone.com/qGcdA3" rel="nofollow noreferrer">Code Demo</a></p>