python一定要学正则表达式么_Python 正则表达 有没有一定的必要去记呀?

本文介绍了Python正则表达式的强大功能,涵盖字段校验、数据筛选、批量修改及爬虫处理等方面,展示了其在实际开发中的广泛应用和广泛支持的平台特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

针对你的问题,简单回答如下:正则用途很广很多(详见后),是程序员的强力工具箱,广泛用于前后端对字段合法性的校验,以及爬虫筛选并规整数据。

至于Python正则表达式,只要懂基本的compile,search,match, findall,剩下的要用再查[文档](https://docs.python.org/3.6/library/re.html)。当然,练得纯熟也好。

你一定要会正则表达式,因为它用途太多太广。

正则用的范围很广,因为它用于处理字符串的能力又常常被需要,且它作为一种比Python小得多的微型语言,在各种系统、软件、语言等都能得到很好地支持——你在搜索引擎、命令行、各种语言、各类编辑器查找等等都能找到它的身影。

至于它的“多用途”,个人总结为一句话:筛选验证批量改。

筛选

若是要在电脑找一个文档,只依稀记得后缀是pdf,文件名含有视频 ,这时就能用Everything的正则表达式搜索功能,输入.*?视频.*?\.pdf ,便可搜索到。https://www.voidtools.com/zh-cn/​www.voidtools.com

Unix的grep,能让程序员从成百上千行输出中找到自己想要的那几条,下图为本人以前做过的算法分析练习的截图,从500行log中找出有用的二十多条记录:

验证

很多网站注册都要邮箱,那它怎么知道你输入的是不是邮箱呢?一般就是用正则表达式。

同样的,身份证、手机号码、银行卡号……

这些一般是后端做的工作,但有些前端也要写这类“合法性验证”。

批量改

假设你想将A-Z26个函数转到AZ这个class里,但是要加上self,手动加很麻烦,怎么办呢?

def A(A):

pass

def B(B):

pass

# 。。。

def Z(Z):

pass

本人用vscode的替换功能将(def .*?\()(.*?\):) 替换成$1self, $2,便可以得到下面的结果:

def A(self, A):

pass

def B(self, B):

pass

# 。。。

def Z(self, Z):

pass

至于如何函数间的调用,这个问题就不是只靠正则表达式就能解决的了。

还有更常见的例子,叫做爬虫。比如要一些地图坐标(23.142141, 163.135534) 这种乱七八糟的数据处理一下吧?不然爬来手工录入Excel?

正则还有很多用途等着你探索。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值