欢迎访问宙启技术站
智能推送

在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?:表示匹配httphttps

- ://:表示匹配冒号和斜杠。

- (?:[-\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链接提取任务。