千家信息网

Python语法学习之正则表达式怎么使用

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍"Python语法学习之正则表达式怎么使用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Python语法学习之正则表达式怎么使用"文章能帮助大
千家信息网最后更新 2026年11月04日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安全错误 数据库的锁怎样保障安全 瑰夏咖啡 手冲咖啡和咖啡机区别 南京欣网互联网络科技有限公司 互联网科技金融公司 喔噻互联网科技 科技互联网公司logo 米客互联网科技 互联网养老 桔豆科技 甘肃拓世互联网科技有限公司 四个字互联网科技公司取名 互联网科技生活的内容 海南科技产业互联网平台 团飞科技与伯堂互联网服务平台 互联网为啥属于高科技 黑科技 体验场景 互联网大会 本届互联网大会上的黑科技 西安有哪些互联网高科技企业 互联网科技企业商标注意事项 科技互联网公司两年变化 武汉亿视互联网科技有限公司 互联网科技股 上海宁丞科技互联网 青岛科技大学互联网大赛研究生 哈尔滨屹滨互联网科技有限公司 呼和浩特新华互联网科技学院 威龙国际互联网科技公司 高科技互联网套路 互联网时代科技型公司的机会 上海万顺科技互联网有限公司招聘 科技互联网专业工作会议发言稿
0