正则表达式用于提取 HTML 中不同开始和结束字符串之间的子字符串



我正在尝试编写一个简单的抓取工具,该工具将从网页中提取特定的URL。该页面有许多URL,但我想获得以一组特定字符结尾的URL。

例如,如果在页面源代码中的某个位置有一个如下所示的 URL:

source: "https://www.website.com/dog.pdf"

我想返回不带引号的https://www.website.com/dog.pdf。如果有多个匹配项,我只想返回第一个。

因此,正则表达式应该提取source:之后的所有内容,直到并包括.pdf"

--

我看过其他问题,但大多数答案拒绝提供正则表达式,而是说使用startswith()endswith().但是由于页面源可能很大,我担心性能。不过,我是Python的新手,也许我只是不明白如何使用这些方法。

你去吧

import re
example = '''
source: "https://www.website.com/dog.pdf"
source: "https://www.website.com/cat.pdf"
'''
pattern = r'"(?P<url>.+?)"'
m = re.search(pattern, example)
url = m.group('url') # result is https://www.website.com/dog.pdf

上。

要返回双引号中的第一个链接,正则表达式将如下所示:

pattern = r'"(?P<url>https?://.+?)"'

如果需要在双引号中找到以.pdf结尾的第一个链接,则正则表达式将如下所示:

pattern = r'"(?P<url>https?://.+?.pdf)"'

相关内容

  • 没有找到相关文章

最新更新