Форум сайта python.su
0
Дана строка следующего вида с переменной длиной:
<reply><process id="3135"/><threads><thread id="-1233097872" name="Storage Writer"/><thread id="-1297089680" name="Local Server"/><thread id="-1242563728" name="File Manager Writer"/><thread id="-1288701072" name="Watcher"/><thread id="-1271923856" name="Mailer"/><thread id="-1305478288" name="Web Server"/><thread id="-1263535248" name="XML Synchronizer"/><thread id="-1224709264" name="Logger"/><thread id="-1250952336" name="Session Cleaner"/><thread id="-1218574656" name="Main"/><thread id="-1280312464" name="Backup"/></threads><garbagecollector><objects>37847</objects><garbage>0</garbage><collection><generation>134</generation><generation>4</generation><generation>1</generation></collection></garbagecollector></reply>
message #строка pattern = re.compile(r'<reply><process\s+id="([^"]+)"/><thread\s+id="([^"]+)"\s+name="([^"]+)"\s*/>') ids,ident,name = pattern.match(message).groups()
Офлайн
0
сам нуб, ты пробовал lxml?
Офлайн
0
Нет, не пробовал. И раньше дела не имел. Первую неделю на питоне ^_^'
Офлайн
0
450 страниц документации лопатить чтобы распарсить… Такое ощущение, что мне предложили травить тараканов ядерными бомбами.
Офлайн
1
re.findall(re, text) - находит все совпадения в отличие от match
matches = re.findall(r'id="(-*\d+)" name="([\w\s]+)"', text)
Отредактировано warik (Фев. 6, 2013 09:37:29)
Офлайн