Форум сайта python.su
Есть html из него хочется убрать все ссылки по определенному признаку но почему то регулярное выражение оставляет закрывающий тег нужной ссылки:
text = """ <a href="/news/12345ssde557/">Кто то такой хорошей</a> <div>123123</div> <a href="site.com">site</a> """ text = re.sub(r'</?a[^>][href="/news/\w\d/"]*>', '', text, flags=re.IGNORECASE) print text
<<< Кто то такой хорошей</a> <div>123123</div> <a href="site.com">site</a>
text = re.sub(r'</?a[^>]*>', '', text)
Отредактировано alexandre1 (Фев. 10, 2014 08:39:08)
Офлайн
in:
print re.findall(ur'href="/news/+\S+\S"',text)
['href="/news/12345ssde557/"']
Офлайн
import re text = """ <a href="/news/12345ssde557/">Кто то такой хорошей</a> <div>123123</div> <a href="site.com">site</a> """ text = re.sub(r'<a[^>]+?href="/news/[\w\d]+/"[^>]*>([^<]*)</a>', r'\1', text, flags=re.IGNORECASE | re.DOTALL) print text
Кто то такой хорошей <div>123123</div> <a href="site.com">site</a>
Офлайн
Спасибо, помогло
Офлайн
o7412369815963text = re.sub(r'<a[^>]+?href="/news/[\w\d]+/"[^>]*>([^<]*)</a>', r'\1', text, flags=re.IGNORECASE | re.DOTALL)
>>> import re >>> re.search(r'\w+', 'abc123def').group() 'abc123def' >>>
>>> import re >>> re.search(r'.', '\n') >>> re.search(r'.', '\n', re.DOTALL) <_sre.SRE_Match object at 0x7f74e16801d0> >>> re.search(r'[^a]', '\n') <_sre.SRE_Match object at 0x7f74e16805e0> >>> re.search(r'[^a]*', '\n\n\n').group() '\n\n\n' >>>
alexandre1lxml.html - хорошее срество
Есть html из него хочется убрать все ссылки по определенному признаку
Отредактировано py.user.next (Фев. 11, 2014 23:14:45)
Офлайн
py.user.nextЧасто забываю, по мне, логичней было-бы разделение на числа и буквы.
\d входит в \w
py.user.nextБыла точка, потом убрал.
re.DOTALL относится к точке
py.user.nextДа, но для простых операций часто достаточно re, + оно будет быстрее в 100-1000 раз.
lxml.html - хорошее срество
Офлайн