Найти - Пользователи
Полная версия: регулярка
Начало » Python для новичков » регулярка
1
diego
Добрый день!
Помогите составить регулярное выражение на строку
<a href="/level/51/type/video/post/1753/" class="continue">Фантом, Красные хвосты</a></span>
<p class="sub">07.08.2011&nbsp;12:42 &#149;&nbsp;
Всегда разные - число 1753, строка “Фантом, Красные хвосты”, дата и время
vkopey
RegexBuddy - программа для построения регулярных выражений
http://www.regexbuddy.com/
Lexander
На http://regexlib.com/ есть онлайн RegEx Tester.

Программы:
http://laurent.riesterer.free.fr/regexp/ (этой пользуюсь, мне хватает)
http://sourceforge.net/projects/regexplorer/
d1ffuz0r
первый вариант с выдиранием всей ссылки, второй только 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')]
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB