优化python链接匹配正则表达式

时间:2010-05-31 18:38:01

标签: python regex

我有一个正则表达式links = re.compile('<a(.+?)href=(?:"|\')?((?:https?://|/)[^\'"]+)(?:"|\')?(.*?)>(.+?)</a>',re.I).findall(data)

在某些html中查找链接,在某些html,任何优化建议上花了很长时间?

它窒息的是http://freeyourmindonline.net/Blog/

3 个答案:

答案 0 :(得分:2)

你有没有理由不使用html解析器?使用像BeautifulSoup这样的东西,你可以获得所有链接而不使用像这样丑陋的正则表达式。

答案 1 :(得分:2)

我建议使用BeautifulSoup来执行此任务。

答案 2 :(得分:0)

如何直接处理href?

re_href = re.compile(r"""<\s*a(?:[^>]+?)href=("[^"]*(\\"[^"]*)*"|'[^']*(\\'[^']*)*'|[^\s>]*)[^>]*>""", re.I)

与你的findall比较大约需要0.007秒,而我的电脑需要38.694秒。