У меня есть XML-фрагмент, как:регулярного выражения для атрибутов словаря
<CharacterBlock MinVal="-10.000000" MaxVal="15.000000" Active="1">
и мне нужно разобрать минимальные и максимальные значения с плавающей точкой. Я не могу использовать парсер XML, например ElementTree, поэтому я вынужден использовать регулярное выражение.
Я написал следующий 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">
Как обрабатывать этот случай, когда порядок групп, которые я хочу, чтобы соответствовать не неподвижная ?
Используйте XML-парсер. – kindall
Как я уже сказал в своем вопросе, из-за ограничений среды, в которой я работаю, я не могу использовать парсер XML и вынужден использовать регулярное выражение. – BioGeek
Используйте один * в любом случае. * Если один из них не установлен, вы можете установить его рядом со своим скриптом (или даже включить его в свой скрипт, если по какой-то причине у вас может быть только один файл). Если парсер DOM использует слишком много памяти, используйте парсер SAX. – kindall