擅长:python、mysql、java
<p>你的正则表达式很好,你只是没有意识到检索,如果找到匹配项,则返回重新匹配对象。那是因为重新匹配对象不一定只有一个组。你需要使用重新匹配组或者重新匹配组方法返回正则表达式查找的组的实际值。你知道吗</p>
<pre><code>>>> line = '(<layerThickness> 0.58 </layerThickness>)'
>>> L = re.search(r"([-+]?[0-9]*\.?[0-9]+)", line)
>>> print L
_sre.SRE_Match object at 0x100499dc8>
>>> print L.group()
0.58
</code></pre>
<p>请注意,顺便说一句,组仍然是一个字符串,而不是整数/浮点数,您仍然需要将其转换为整数/浮点数才能在数学中使用它。你知道吗</p>
<p>另外请注意,如果您的行中根本不包含匹配项,那么L可能是None,因此您需要在生产代码中测试它。你知道吗</p>