Форум сайта python.su
22
>>> import re >>> str='<a href="1.ru">11111</a>, <a href="2.ru">222222</a>' >>> re.findall(r'<a.*>.*</a>', str) ['<a href="1.ru">11111</a>, <a href="2.ru">222222</a>'] >>>
Офлайн
173
.* - очень жадный (greedy)
re.findall(r'<a[^>]*>[^<]*</a>', str)
re.findall(r'<a.*?>.*?</a>', str)
re.findall(r'<a[^>]*>[^<]*</a>', str)
Офлайн
63
reclosedev
Абсолютно согласен. Если документ небольшой можно работать с xml. Для него в Бизли Д есть даже русская дока с примерами.
Офлайн
857
>>> import lxml.html >>> >>> s = """<a href="1.ru">11111</a>, <a href="2.ru">222222</a>""" >>> >>> html = lxml.html.fromstring(s) >>> data = [(node.attrib['href'], node.text) ... for node in html.iterchildren('a')] >>> print(data) [('1.ru', '11111'), ('2.ru', '222222')] >>>
Отредактировано py.user.next (Июль 2, 2013 02:32:44)
Офлайн
22
спасибо всем.
теперь все понятно.
Больше интересовало правильное построение регулярки.
Офлайн