在Python中使用re模块的findall()函数提取URL链接
发布时间:2024-01-09 06:37:51
在Python中,使用正则表达式(re模块)的findall()函数可以很方便地提取URL链接。下面是一个使用findall()函数提取URL链接的示例代码:
import re
def extract_urls(text):
# 定义URL链接的正则表达式模式
pattern = r'https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+'
# 使用findall()函数查找匹配的URL链接
urls = re.findall(pattern, text)
return urls
# 测试用例
text = '''
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc accumsan http://www.example.com feugiat nulla, ut cursus lacus maximus vel.
Morbi pretium http://www.google.com volutpat dui imperdiet, non aliquam tortor condimentum.
https://www.python.org Nunc vehicula dui sit amet urna maximus dapibus.
'''
# 提取URL链接
urls = extract_urls(text)
# 输出提取的URL链接
for url in urls:
print(url)
在上面的示例代码中,我们首先定义了一个提取URL链接的正则表达式模式r'https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+。
- https?:表示匹配http或https。
- ://:表示匹配冒号和斜杠。
- (?:[-\w.]|(?:%[\da-fA-F]{2}))+:表示匹配一个或多个字母、数字、连字符、句点或百分号后跟两个十六进制数字。
然后,我们使用re.findall(pattern, text)函数查找输入文本中所有与正则表达式模式匹配的URL链接,并将它们存储在名为urls的列表中。
最后,我们使用一个for循环遍历urls列表,逐个输出提取到的URL链接。
在上面的测试用例中,我们定义了一个包含各种URL链接的文本变量text,并将其传递给extract_urls()函数。然后,我们遍历提取到的URL链接并打印它们。
运行上面的示例代码,你将得到以下输出:
http://www.example.com http://www.google.com https://www.python.org
这些就是使用Python中re模块的findall()函数提取URL链接的简单示例。你可以根据自己的需求修改正则表达式模式来适应不同的URL链接提取任务。
