【Python正则-驯化】一文学会通过Python中的正则表达式提取文本中的网址
本次修炼方法请往下查看
🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
🎇 免费获取相关内容文档关注:微信公众号,发送 pandas 即可获取
🎇 相关内容视频讲解 B站
🎓 博主简介:AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验。
🔧 技术专长: 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100% 。
📝 博客风采: 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。
🌵文章目录🌵
- 🎯 1. 基本介绍
- 🎯 2、提取方法论介绍
- 🎯 3、代码实践
- 🎯 4. 注意事项
- 🎯 5. 总结
下滑查看解决方法
🎯 1. 基本介绍
在数据验证和文本处理中,经常需要验证输入的网址是否符合标准格式。正则表达式是一种强大的工具,用于匹配字符串中的特定模式。本博客将介绍一个用于验证网址的正则表达式,并展示如何在Python中使用它。
🎯 2、提取方法论介绍
通常网站遵守一定的格式,具体为:协议+域名+后缀
,因此,我们在提取的时候通过如下的模型进行配套,具体为:
模版^(((http|https|ftp):\/\/)?([[a-zA-Z0-9]\-\.])+(\.)([[a-zA-Z0-9]]){2,4}([[a-zA-Z0-9]\/+=%&_\.~?\-]*))*$的构成如下:
^:匹配字符串的开始。
((http|https|ftp):\/\/)?:匹配协议(http, https, ftp),可能跟一个://,出现0次或1次。
([[a-zA-Z0-9]\-\.])+:匹配域名部分,允许字母、数字、短划线和点。
(\.)([[a-zA-Z0-9]]){2,4}:匹配点和顶级域名,顶级域名长度为2到4个字符。
([[a-zA-Z0-9]\/+=%&_\.~?\-]*):匹配路径和查询参数,允许字母、数字以及一些特殊字符。
*:前面的模式可以出现0次或多次。
$:匹配字符串的结束。
🎯 3、代码实践
通过上述的提取方法,我们构造相关的数据集来对网站进行验证,具体的操作如下所示:
url_pattern = r'^(((http|https|ftp):\/\/)?([[a-zA-Z0-9]\-\.])+(\.)([[a-zA-Z0-9]]){2,4}([[a-zA-Z0-9]\/+=%&_\.~?\-]*))*$'
# 测试网址列表
urls = [
"http://example.com",
"https://www.example.co.uk",
"ftp://files.example.com/data",
"not-a-valid-url",
"http://123.123.123"
]
for url in urls:
if re.match(url_pattern, url):
print(f"Valid URL: {url}")
else:
print(f"Invalid URL: {url}")
Valid URL: http://example.com
Valid URL: https://www.example.co.uk
Valid URL: ftp://files.example.com/data
Invalid URL: not-a-valid-url
Invalid URL: http://123.123.123
🎯 4. 注意事项
- 确保使用原始字符串(在字符串前加r)来定义正则表达式,以避免转义字符的问题。
- 根据实际需求调整正则表达式,以匹配特定的网址格式。
- 正则表达式的性能可能受到模式复杂度和文本长度的影响。
🎯 5. 总结
正则表达式提供了一种灵活的方式来验证网址格式。通过本博客的代码示例,我们学习了如何定义一个匹配网址的正则表达式,并在Python中使用它来验证一系列网址。希望这篇博客能够帮助你更好地理解正则表达式在网址验证中的应用,并将其应用于实际的文本处理任务中。