ここで正規表現を使用する必要はありません。実際、正規表現は、などの一部のフロートでは機能しない場合があります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
ことを示します。同様に、コードはオブジェクトのリストを生成します。リストを印刷すると、Pythonはリスト内の各要素のを印刷します。これがあなたが見る理由ですtext
unicode
str
unicode
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
で、はフロートのリストです。