【发布时间】:2012-01-16 05:36:20
【问题描述】:
我的问题类似于this one,但更复杂。
我正在尝试找出一个正则表达式来从文本文档中提取 URL。棘手的是,一些 URL 嵌入在更难解析格式的句子中。这是我想从中提取 URL 的文本示例:
<p>There are several links of the general format http://www.foo.com/index.html.</p>
<p>There are many websites (e.g. http://www.foo.com/abc/def?a=2&b=3) that end oddly: http://www.foo.com/results</p>
在这些示例中,第一个 URL 有一个句尾句点,紧跟在需要排除的链接之后。第二个链接在 URL 的末尾有一个右括号,第三个链接在到达 HTML 标记时结束。
就我而言,句点(和右括号)是有效的 URL 字符,除非它是最后一个字符。简而言之,问题是如何处理字符串中有效的字符,前提是它们不是字符串中的最后一个字符。
我目前无法处理这种情况的正则表达式是(在 Python 中):
m = re.findall("((http:|https:)//[^ \<]+)",line)
对处理这个问题的优雅方法有什么想法吗?
【问题讨论】:
标签: python regex url hyperlink