Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 11, 2011 13:32:08

diego
От:
Зарегистрирован: 2010-09-14
Сообщения: 78
Репутация: +  0  -
Профиль   Отправить e-mail  

регулярка

Добрый день!
Помогите составить регулярное выражение на строку

<a href="/level/51/type/video/post/1753/" class="continue">Фантом, Красные хвосты</a></span>
<p class="sub">07.08.2011&nbsp;12:42 &#149;&nbsp;
Всегда разные - число 1753, строка “Фантом, Красные хвосты”, дата и время



Офлайн

#2 Авг. 11, 2011 15:00:10

vkopey
От:
Зарегистрирован: 2010-09-26
Сообщения: 116
Репутация: +  3  -
Профиль   Отправить e-mail  

регулярка

RegexBuddy - программа для построения регулярных выражений
http://www.regexbuddy.com/



Офлайн

#3 Авг. 11, 2011 18:23:26

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

регулярка

На http://regexlib.com/ есть онлайн RegEx Tester.

Программы:
http://laurent.riesterer.free.fr/regexp/ (этой пользуюсь, мне хватает)
http://sourceforge.net/projects/regexplorer/



Офлайн

#4 Авг. 11, 2011 22:54:49

d1ffuz0r
От: Moscow
Зарегистрирован: 2011-03-25
Сообщения: 127
Репутация: +  5  -
Профиль   Отправить e-mail  

регулярка

первый вариант с выдиранием всей ссылки, второй только id. могут быть проблемы с переносами

Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import re
>>> string = '<a href="/level/51/type/video/post/1753/" class="continue">Фантом, Красные хвосты</a></span> \
<p class="sub">07.08.2011&nbsp;12:42 •&nbsp;'
>>> string = string.strip('\r\n')
>>> regexp1 = re.compile(r'<a href="(.*?)"\sclass="continue">(.*?)</a></span>\s{0,}<p\sclass="sub">(.*?)\s', re.MULTILINE)
>>> regexp2 = re.compile(r'<a href="/level/51/type/video/post/(\d+)/"\sclass="continue">(.*?)</a></span>\s{0,}<p\sclass="sub">(.*?)\s', re.MULTILINE)
>>> print re.findall(regexp1, string)
[('/level/51/type/video/post/1753/', '\xd4\xe0\xed\xf2\xee\xec, \xca\xf0\xe0\xf1\xed\xfb\xe5 \xf5\xe2\xee\xf1\xf2\xfb', '07.08.2011&nbsp;12:42')]
>>> print re.findall(regexp2, string)
[('1753', '\xd4\xe0\xed\xf2\xee\xec, \xca\xf0\xe0\xf1\xed\xfb\xe5 \xf5\xe2\xee\xf1\xf2\xfb', '07.08.2011&nbsp;12:42')]
>>>

Отредактировано (Авг. 11, 2011 22:55:54)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version