次のようなXMLスニペットがあります。
<CharacterBlock MinVal="-10.000000" MaxVal="15.000000" Active="1">
そして、最小および最大の浮動小数点値を解析する必要があります。ElementTreeのようなXMLパーサーを使用できないため、正規表現を使用する必要があります。
私は次のPython正規表現を作成しました。
re.compile('<CharacterBlock MinVal="(?P<MinVal>-?[0-9]*\.?[0-9]*)" MaxVal="(?P<MaxVal>-?[0-9]*\.?[0-9]*)" .*?>', re.DOTALL)
これは上記のスニペットで機能します。ただし、XML属性は辞書のようなものであるため、その順序は保証されておらず、次のようなスニペットを受け取ることがあります。
<CharacterBlock Active="0" MaxVal="-15.000000" MinVal="-100.000000">
一致させたいグループの順序が固定されていない場合、どうすればよいですか?