Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 5, 2007 22:07:04

aliens
От:
Зарегистрирован: 2007-08-14
Сообщения: 135
Репутация: +  1  -
Профиль   Отправить e-mail  

регулярные выражения

А не встречал ли никто нормального мануала по работе с регэкспами?
Что то простое представляю как сделать, а вот например,щас задача встала, с помощью регекспов выделять из текста строки типа:
<a href=“/t/b146.torrent”> Bleach 146 </a>
<a href=“/t/b147.torrent”> Bleach 147 </a>

Изменяются только цифры. Как такое реализовать с помощью регекспов? Не понимаю вообще, какого вида шаблон должен быть…



Офлайн

#2 Ноя. 6, 2007 00:43:41

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

регулярные выражения

Аяяй :) Ну не давать же вам готовое решение, в самом деле, Вы же так регулярные выражения не разберёте….
Напишите хоть какие пробовали, и где затык…
Тут почитайте, довольно понятно написано, просто попробовать надо…

Офлайн

#3 Ноя. 6, 2007 01:16:53

umup
От:
Зарегистрирован: 2007-07-14
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

регулярные выражения

Friedl J.E.Mastering regular expressions.2002
Фридл Дж.Регулярные выражения.Библиотека программиста.2003
Watt A.Beginning regular expressions.2005
Stubblebine T.Regular expression pocket reference.2003
Mertz D.Text processing in Python.2003



Офлайн

#4 Ноя. 6, 2007 09:58:08

Yurietc
От:
Зарегистрирован: 2007-07-18
Сообщения: 112
Репутация: +  0  -
Профиль   Отправить e-mail  

Офлайн

#5 Ноя. 6, 2007 13:10:00

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

регулярные выражения

шаблон такой:
“(<a href=”/t/b\d+.torrent“> Bleach \d+ </a>)”
Скобочки означают - выделение группы - все что внутри них - пойдет в результат.
\d - означает цифру.
\d+ - означает - что цифр будет одна или больше.
использовать в питоне так:
result = re.findall(r'(<a href=“/t/b\d+.torrent”> Bleach \d+ </a>)', data)

результатом будет список =)



Офлайн

#6 Ноя. 6, 2007 13:30:47

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

регулярные выражения

Да уж, точно, каждому - своё…

Офлайн

#7 Ноя. 7, 2007 00:41:30

aliens
От:
Зарегистрирован: 2007-08-14
Сообщения: 135
Репутация: +  1  -
Профиль   Отправить e-mail  

регулярные выражения

shiza
спасибо. Попонятнее стало.
Ferroman
на интуите я читал, не понял я как составлять шаблон. :(



Офлайн

#8 Ноя. 7, 2007 11:22:59

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

регулярные выражения

Да, регулярные выражения такая штука, что нужно обязательно попробовать и тогда все понятно станет. Сходу, без практики, очень трудно въехать.

Офлайн

#9 Ноя. 8, 2007 09:52:38

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

регулярные выражения

Немного оффтоп, но - в кде есть замечательная программка - kregexpeditor. Отличная софтина, чтобы поиграть с регулярными выражениями.



Офлайн

#10 Март 28, 2008 09:37:19

well
От:
Зарегистрирован: 2006-11-20
Сообщения: 163
Репутация: +  0  -
Профиль   Отправить e-mail  

регулярные выражения

Всем привет, столкнулся с проблемой и не понял в чем прикол. Есть xml-ина, из которой я решил быстро регуляркой удалить ненужное. xml весит 120 кб, вот часть, которая меня интересует:

...
<ZTMC>
...
</ZTMC>
...
мне надо удалить все все от <ZTMC> до </ZTMC>, включая эти теги. Ищу я этот текст следующей регуляркой:
re.compile (r"\<ztmc.*ztmc\>", re.IGNORECASE)
Все находит сходу, но если я делаю так:
re.compile (r"\<ztmc\>.*\<\\ztmc\>", re.IGNORECASE)
то питон зависает эдак минут на 10, съедая все процессорное время и ничего не находит. Можете сказать, что я нетак делаю? Заранее спасибо.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version