【正则表达式-驯化】Python中网页提取神器使用正则表达式以及基础语法介绍
本次修炼方法请往下查看
🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
🎇 免费获取相关内容文档关注:微信公众号,发送 pandas 即可获取
🎇 相关内容视频讲解 B站
🎓 博主简介:AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验。
🔧 技术专长: 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100% 。
📝 博客风采: 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。
下滑查看解决方法
🎯 1. 基本介绍
正则表达式(Regular Expression,简称Regex)是一种用于匹配字符串中字符组合的模式。在Python中,正则表达式通过re模块提供,它是一个用于处理字符串的强大工具,可以用于搜索、替换、分割和验证文本格式等任务。
🎯 2、基本语法介绍
正则表达式中常用的语法具体如下所示:
元字符 | 描述 |
---|---|
^ | 匹配行的开始 |
$ | 匹配行的结束 |
. | 匹配除换行符以外的任意字符。 |
[ ] | 字符类,匹配方括号中包含的任意字符,[amk] 匹配 ‘a’,‘m’或’k’ |
[^ ] | 不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符。 |
* | 匹配前面的子表达式零次或多次 |
+ | 匹配前面的子表达式一次或多次 |
? | 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。 |
{n,m} | 花括号,匹配前面字符至少 n 次,但是不超过 m 次。 |
(xyz) | 字符组,按照确切的顺序匹配字符xyz。 |
| | 分支结构,a|b匹配a或b |
\ | 转义符,它可以还原元字符原来的含义,允许你匹配保留字符 [ ] ( ) { } . * + ? ^ $ \ | |
\w | 匹配所有字母和数字的字符: [a-zA-Z0-9_] |
\W | 匹配非字母和数字的字符: [^\w] |
\d | 匹配数字: [0-9] |
\D | 匹配非数字: [^\d] |
\s | 匹配空格符: [\t\n\f\r\p{Z}] |
\S | 匹配非空格符: [^\s] |
\u4e00-\u9fa5 | 汉字的unicode范围 |
\u0030-\u0039 | 数字的unicode范围 |
\u0041-\u005a | 大写字母unicode范围 |
\u0061-\u007a | 小写字母unicode范围 |
🎯 3、Python中使用正则
3.1 环境搭建
python中使用re比较简单的方法就是安装re包即可,具体的操作如下所示:
pip install re
3.2 基本使用
搜索匹配项,具体的代码如下所示:
match = re.search(r'\d+', 'Hello 123 world')
if match:
print(f"Found: {match.group()}")
123
查找所有匹配项,具体的代码如下所示:
matches = re.findall(r'\d+', '123 abc 456')
print(f"Matches: {matches}")
Matches: ['123', '456']
替换文本,具体的代码如下所示:
new_string = re.sub(r'\d+', 'XXX', '123 abc 456')
print(f"New string: {new_string}")
New string: XXX abc XXX
🎯 4. 注意事项
- 确保使用原始字符串(在字符串前加r)来定义正则表达式,以避免转义字符的问题。
- 正则表达式的性能可能受到模式复杂度和文本长度的影响。
- 在使用正则表达式之前,了解其语法和规则是非常重要的。
🎯 5. 总结
Python的re模块为处理文本提供了强大的正则表达式功能。通过本博客的代码示例,我们学习了如何在Python中使用正则表达式进行搜索、查找、替换和分割操作。希望这篇博客能够帮助你更好地利用正则表达式来解决文本处理中的问题。