Форум сайта python.su
0
Добры день.
Есть такая строка:
<a href="http://site.com/images/.../image.jpg"><img alt="изображение" class="aligncenter size-full wp-image-6026" height="346" src="http://site.com/images/.../image.jpg" width="530" /></a>
<img alt="изображение" src="http://site.com/images/.../image.jpg" width="530" />
Офлайн
9
import re p = re.compile('<img.*/>') string = p.findall(string)
Отредактировано alexsis (Фев. 25, 2014 14:11:48)
Офлайн
0
alexsisНе совсем то. Задача состоит не в получении нужных атрибутов и т.п. В этом ничего сложного нет, а именно в замене: убирании тега <a> и удаление class=…
import re p = re.compile('<img.*/>') string = p.findall(string)
Офлайн
186
Самое первое что пришло в голову:
1) Через регулярку находишь подстроку.
2) через find находишь её начало
3) через len находишь её длину
4) через срез удаляешь фрагмент строки
Офлайн
0
RodegastСпасибо. Вроде все элементарно, но вот мой мозг что-то сегодня не работает. )))
Самое первое что пришло в голову:1) Через регулярку находишь подстроку.2) через find находишь её начало3) через len находишь её длину4) через срез удаляешь фрагмент строки
Офлайн
навскидку вот
import re pattern = re.compile(r'(<a[^>]+>)|(</a>)|(class="[^"]+")') print pattern.sub('', text)
Офлайн
857
>>> import lxml.html >>> >>> s = """<a href="http://site.com/images/.../image.jpg"><img alt="изображение" class="aligncenter size-full wp-image-6026" height="346" src="http://site.com/images/.../image.jpg" width="530" /></a>""" >>> >>> tag = lxml.html.fragment_fromstring(s).find('img') >>> del tag.attrib['class'] >>> out = lxml.html.tostring(tag, encoding=str) >>> out '<img alt="изображение" height="346" src="http://site.com/images/.../image.jpg" width="530">' >>>
Офлайн