【Python正则-驯化】最全面干净的通过python将文本中的异常符号进行处理技巧
本次修炼方法请往下查看
🌈 欢迎莅临 我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
🎇 免费获取相关内容文档关注: 微信公众号,发送 pandas 即可获取
🎇 相关内容视频 讲解 B站
🎓 博主简介 :AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验 。
🔧 技术专长 : 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析 等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次 有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100% 。
📝 博客风采 : 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。
🌵文章目录🌵
-
- [🎯 1. 基本介绍](#🎯 1. 基本介绍)
- [🎯 2、解决方法](#🎯 2、解决方法)
-
- [2.1 通过穷举的解决](#2.1 通过穷举的解决)
- [2.1 通过unicode的解决](#2.1 通过unicode的解决)
- [🎯 3. 注意事项](#🎯 3. 注意事项)
- [🎯 4. 总结](#🎯 4. 总结)
下滑查看解决方法
🎯 1. 基本介绍
在处理各类数据时,有时候数据的key为文本数据,这时经常会有相关的异常符号的出现,如果我们通过穷举的方法对数据进行过滤会出现一定泄露的问题,具体的常用的数据如下所示:
python
string = "123我123456abcdefgABCVDFF?/ ,。,.:;:''';'''[]{}()()《》"
🎯 2、解决方法
2.1 通过穷举的解决
我们可以通过如下的正则表达式对其进行解决,具体的模版如下所示:
python
`[a-zA-Z0-9'!"#$%&\'()*+,-./:;<=>?@,。?★、...【】《》?± ""''![\\]^_`{|}~]`
通过上面的模版通过python对其进行修改,具体的代码如下所示:
python
import re
string = "123我123456abcdefgABCVDFF?/ ,。,.:;:''';'''[]{}()()《》"
sub_str = re.sub(u'([a-zA-Z0-9'!"#$%&\'()*+,-./:;<=>?@,。?★、...【】《》?± ""''![\\]^_`{|}~])',"",string)
sub_str
# 输出结果
'我()'
通过上面的方法,真实的环境中异常符号的数据特别的多,我们根本没法完全全部列出来,因此,这种办法很难处理好数据
2.1 通过unicode的解决
可以根据每个字符在unicode中编码的值通过unicode编码对其进行转换,具体的代码如下所示:
python
import re
sub_str = re.sub(u"([^\u4e00-\u9fa5\u0030-\u0039\u0041-\u005a\u0061-\u007a])","",string)
print(sub_str)
123我123456abcdefgABCVDFF
上述代码的核心就是通过对中文、数字、字母的unicode编码范围进行判断,如果超过范围内的字符则进行过滤处理。
🎯 3. 注意事项
- 确保使用原始字符串(在字符串前加r)来定义正则表达式,以避免转义字符的问题。
- 正则表达式的性能可能受到模式复杂度和文本长度的影响。
- 在使用正则表达式之前,了解其语法和规则是非常重要的。
🎯 4. 总结
Python的re模块为处理文本提供了强大的正则表达式功能。通过本博客的代码示例,我们学习了如何使用正则表达式进行搜索、查找、替换和分割操作。希望这篇博客能够帮助你更好地利用正则表达式来清洗和处理文本数据。