Python语法学习之正则表达式怎么使用
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章主要介绍"Python语法学习之正则表达式怎么使用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Python语法学习之正则表达式怎么使用"文章能帮助大
千家信息网最后更新 2025年01月22日Python语法学习之正则表达式怎么使用
这篇文章主要介绍"Python语法学习之正则表达式怎么使用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Python语法学习之正则表达式怎么使用"文章能帮助大家解决问题。
要想成功的进行字符串的匹配需要使用到正则表达式模块,正则表达式匹配规则以及需要被匹配的字符串。在这三个条件中,模块与字符串都是准备好的,只有匹配规则异常的灵活,而今天这个章节就是认识一下正则表达式中的特殊字符,通过这些字符就可以针对我们想要的数据进行匹配。
正则表达式中的特殊字符
特殊字符 | 描述 |
---|---|
\d | 匹配任何十进制的数字,与[0-9]一致 |
\D | 匹配任意非数字 |
\w | 匹配任何字母数字下划线及unicode字符集 |
\W | 匹配非字母数字的数据以及下划线 |
\s | 匹配任何空格字符,与 [\n \t \r \v \f] 相同 |
\S | 匹配任意非空字符 |
\A | 匹配字符串的起始 |
\Z | 匹配字符串的结束 |
. | 匹配任何字符(除了 \n 之外);也叫做通配符 |
正则表达式的使用
接下来看一个小案例,帮助我们了解这些 特殊字符的使用方法 。
import retest_data = "My name is Neo, I'm 30 years old." # 将一串字符串赋值给变量 test_dataresult_int = re.findall('\d', test_data) # 使用 findall 函数并传入 '\d' 的匹配规则匹配 test_data(只匹配数字)result_Space = re.findall('\s', test_data) # 使用 findall 函数并传入 '\d' 的匹配规则匹配 test_data(只匹配空格)result_str = re.findall('\w', test_data) # 使用 findall 函数并传入 '\d' 的匹配规则匹配 test_data(匹配字符串)result_str_start = re.findall('\AMy', test_data) # 匹配开头为 My 的字符串result_str_start_null = re.findall('\AMya', test_data) # 匹配开头为 Mya 的字符串(不存在 mya ,返回空列表)result_str_end = re.findall('old.\Z', test_data) # 匹配结尾为 old. 的字符串result_str_end_null = re.findall('zold.\Z', test_data) # 匹配结尾为 zold. 的字符串(不存在 zold ,返回空列表)result_all = re.findall('.', test_data) # 匹配除了 \n 之外的所有字符(包含空格)print(result_int)print(result_Space)print(result_str) # 从结果上来看 \w 要比 \d 更高级一些,不仅匹配了 str,也匹配了 int(实际上这里的int依然是字符串)print(result_str_start)print(result_str_start_null)print(result_str_end)print(result_str_end_null)# >>> 执行结果如下# >>> ['3', '0']# >>> [' ', ' ', ' ', ' ', ' ', ' ', ' ']# >>> ['M', 'y', 'n', 'a', 'm', 'e', 'i', 's', 'N', 'e', 'o', 'I', 'm', '3', '0', 'y', 'e', 'a', 'r', 's', 'o', 'l', 'd']# >>> ['My']# >>> []# >>> ['old.']# >>> []# >>> ['M', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' ', 'N', 'e', 'o', ',', ' ', 'I', "'", 'm', ' ', '3', '0', ' ', 'y', 'e', 'a', 'r', 's', ' ', 'o', 'l', 'd', '.']
正则小案例 - 1
1、定义一个函数,判断传入参数是否包含有数字。
2、定义一个函数,判断传入参数是否含有数字,如果有则移除。
import redef have_number(data): # 定义一个判断是否存在数字的函数 result = re.findall('\d', data) # 利用 re 模块的 findall 函数的 \d 规则判断传入的 data 是否存在数字 print(result) for i in result: # 利用 for 循环 判断 result 的结果,如果存在返回 True ;反之返回 False return True return Falsedef remove_number(data): result = re.findall('\D', data) print(result) return ' '.join(result)if __name__ == '__main__': test_data_1 = "My name is Neo, I'm 30 year's old." test_data_2 = "it's a beautiful day to be with you" result = have_number(test_data_1) print(result) result = remove_number(test_data_1) print(result) result = re.findall('\W', test_data_2) # 匹配非字母数字的数据以及下划线 print(result)
运行结果如下图:
正则小案例 - 2
1、定义一个 startwith 函数 判断传入数据是否是字符串的开头
2、定义一个 endwith 函数 判断传入数据是否是字符串的结尾
import redef startswith(sub, data): _sub = '\A{}'.format(sub) result = re.findall(_sub, data) for i in result: return True return Falsedef endswith(sub, data): _sub = '{}\Z'.format(sub) result = re.findall(_sub, data) if len(result) == 0: return False else: return True if __name__ == '__main__': result = startswith('My', test_data_1) print(result) result = endswith('old.', test_data_2) print(result)
执行结果如下:
正则小案例 - 3
1、python 内置函数 len() 是可以获取到字符串的长度的,但是当字符串中存在着空格符号的时候也会计算在长度内。
2、利用正则的知识,定义一个计算字符串真实长度的函数
import redef real_len(data): result = re.findall('\S', data) return len(result)if __name__ == '__main__': test_data_1 = "My name is Neo, I'm 30 year's old." test_data_2 = "it's a beautiful day to be with you" print(len(test_data_2)) result = real_len(test_data_2) print(result)
运行结果如下:
关于"Python语法学习之正则表达式怎么使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
字符
字符串
正则
函数
数字
表达式
结果
规则
数据
案例
特殊
知识
空格
语法
语法学
习之
下划线
字母
开头
模块
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
协调统筹网络安全工作的部门
软件开发与设计步骤
北京正规网络技术服务标准
app软件开发技巧
服务器端与服务器端认证
一个网站有多个服务器集群
数据库结构分析师
网络安全注册审评指导原则
高端服务器包装价格
网络中间服务器管理是什么
查看当前数据库名称的语句
嵌入式软件开发相关公司
电脑服务器异常
黄浦租房网络安全
网络安全规划与部署课程设计
网络安全事件的发生机制
湖南超级计算套料软件开发商
怀旧服优秀服务器
软件开发公司销售部门个人目标
数据库做用户管理登录
u8怎样检查数据库
软件开发及软件测试
二进制日志恢复数据库
北京物流软件开发收费多少
网络技术可以考大学吗
在软件开发过程中要产生
商城数据库结构
塔式服务器t440和t640
网络安全世界技能大赛浙江
网络安全课课件ppt