擅长:python、mysql、java
<p>使用python和<code>re</code>模块,确实可以使用组并将组i的内容与<code>\i</code>匹配。但是,对于您的应用程序,我建议您使用可读性更强的正则表达式来查找正好有6、4、3和2位的数字。然后可以重新排列它们以产生预期的输出,如下所示,只需两行代码:</p>
<pre><code>import re
s = '111111|1234|99|777\n222222/17/4321/222\n333333_333_3333_33\n444444-444-44-4444\n555555 | 55 | 5555 | 555'
interm = [re.findall('\D('+i+')\D', s) for i in ('\d{6}','\d{4}','\d{2}','\d{3}')]
result = "\n".join(["|".join(line) for line in list(zip(*interm))])
print(result)
# 111111|1234|99|777
# 222222|4321|17|222
# 333333|3333|33|333
# 444444|4444|44|444
# 555555|5555|55|555
</code></pre>