<p>如果暴力正则表达式是可接受的</p>
<pre><code>s='''
<tr>
<td><p>L1</p></td>
<td><p>(4.000x2.300x500; 4,6m³)</p></td>
<td><p>&nbsp;</p></td>
<td><p> 1.221 kg</p></td>
</tr>
<tr>
<td><p>L2</p></td>
<td><p>(4.250x2.300x500; 4,9m³)</p></td>
<td><p>&nbsp;</p></td>
<td><p> 1.279 kg</p></td>
</tr>
<tr>
<td><p>L3</p></td>
<td><p>(4.500x2.300x500; 5,2m³)</p></td>
<td><p>&nbsp;</p></td>
<td><p> 1.321 kg</p></td>
</tr>
<tr>
<td><p>L4</p></td>
<td><p>(4.750x2.300x500; 5,5m³)</p></td>
<td><p>&nbsp;</p></td>
<td><p> 1.364 kg</p></td>
</tr>
'''
import re
p=r'(\([0-9x.]+)(; +)([0-9,m³]+)(\)</p></td>\n <td><p>)(&nbsp;)'
# not sure which output is preferred
x = re.sub(p, '\g<1>\g<2>\g<3>\g<4>\g<3>', s)
print(x)
y = re.sub(p, '\g<1>\g<4>\g<3>', s)
print(y)
</code></pre>