这里不需要使用正则表达式。实际上,您的正则表达式可能不适用于某些浮点数,例如1.4e1
.
由于您使用的是 minidom,您可以这样做:
import xml.dom.minidom as minidom
import ast
content = "<RMS>[14.470156174, 14.470156174, 14.485567944, 14.496014765]</RMS> "
dom = minidom.parseString(content)
text = dom.getElementsByTagName('RMS')[0].childNodes[0].wholeText
如果你
print(text)
你得到
[14.470156174, 14.470156174, 14.485567944, 14.496014765]
但如果你
print(repr(text))
你得到
u'[14.470156174, 14.470156174, 14.485567944, 14.496014765]'
u
表示这是text
一个unicode
对象,而不是一个str
对象。同样,您的代码会生成一个unicode
对象列表。打印列表时,Python 会打印列表repr
中每个元素的 。这就是为什么你看到
[u'14.470156174', u'14.470156174', u'14.485567944', u'14.496014765']
现在重新阅读您的问题后,我看到您想要text
. 由于它们是数字,我假设您想要一个浮点数列表。在这种情况下,您可以使用ast.literal_eval
:
values = ast.literal_eval(text)
print(values)
产量
[14.470156174, 14.470156174, 14.485567944, 14.496014765]
values
浮点数列表在哪里。