Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 12, 2012 15:13:41

Tapo4e4ek
От:
Зарегистрирован: 2009-10-22
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Пожалуйста, помогите с РегЕкспами

Имею строки которые нужно парсить. мне надо извлекать из строки все что начинается символом < и заканчивается либо символом ; либо > что раньше встретит. Пожалуйста помогите, с обьяснением. Сколько не читал про рег експы, понимания 0. могу проходится по каждой строке и как встречу символ < начинать собирать новую строку, пока не встречу ; либо > Но очень много ресурсозатрат. Пожалуйста помогите!!!



Офлайн

#2 Апрель 12, 2012 15:21:30

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Пожалуйста, помогите с РегЕкспами

Tapo4e4ek
Имею строки которые нужно парсить. мне надо извлекать из строки все что начинается символом < и заканчивается либо символом ; либо > что раньше встретит. Пожалуйста помогите, с обьяснением. Сколько не читал про рег експы, понимания 0. могу проходится по каждой строке и как встречу символ < начинать собирать новую строку, пока не встречу ; либо > Но очень много ресурсозатрат. Пожалуйста помогите!!!
Ты парсишь HTML/XML?
Тогда не выдумывай велосипед и успользуй специализированные парсеры. Ссылок на этом форуме найдешь кучу. А в гугле гору Арарат.



Офлайн

#3 Апрель 12, 2012 15:29:02

Tapo4e4ek
От:
Зарегистрирован: 2009-10-22
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Пожалуйста, помогите с РегЕкспами

Нет, не хтмл. Пишу парсинг конфигурационного файла. С помощью ConfigParser получаю в массив все строки которые мне нужны, теперь мне надо обрабатывать эти строки. Если пробегаться по ним - получу квадратичный рост (чего совсем не хотелось бы). Тут меня спасут только регЕкспы. Но я сколько не пытался их понять, не для моего мозга!

Пример моей строки - ‘to=“200” <sip:200@127.0.0.1:5062;line=8d1cc170abf10f3>’
Мне отсюда желательно получить 200@127.0.0.1 - все!



Офлайн

#4 Апрель 12, 2012 15:55:24

agalen
От:
Зарегистрирован: 2011-03-23
Сообщения: 185
Репутация: +  17  -
Профиль   Отправить e-mail  

Пожалуйста, помогите с РегЕкспами

Примерно так:

import re
res = re.search( r"<.*?:([^:;>]*)", 'to="200" <sip:200@127.0.0.1:5062;line=8d1cc170abf10f3>' )
print res.group(1)
Поясняю:
  <       - ищем строку
.?*: - съедаем символы до ':'
в скобках - то что мы ищем
[^:;>]* - все символы, кроме : ; >



Отредактировано agalen (Апрель 12, 2012 15:57:57)

Офлайн

#5 Апрель 12, 2012 16:10:54

Tapo4e4ek
От:
Зарегистрирован: 2009-10-22
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Пожалуйста, помогите с РегЕкспами

agalen
Огромное приогромное спс!
+1



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version