Python正则表达式re库
1. 字符匹配
- 字符相关
import retext = "Hello World! 123alialiya啊123alialiya啊 Hello""""简单字符串匹配""" data_list = re.findall("23a", text) print(data_list)"""单个字符匹配""" data_list = re.findall("[abcde]", text) print(data_list) data_list = re.findall("23[abced]", text) print(data_list)""" [^a-z]除小写字母以外的其他字符""" data_list = re.findall("[^a-z]", text) print(data_list)"""数字""" data_list = re.findall("1[0-9]", text) print(data_list)""" .代指除换行符以外的任意字符""" data_list = re.findall("a.i", text) print(data_list)"""贪婪匹配""" data_list = re.findall("a.+i", text) # 贪婪匹配 print(data_list)"""非贪婪匹配""" data_list = re.findall("a.+?i", text) # 非贪婪匹配 print(data_list)""" \w指字母或数字或下划线(包含汉字) +贪婪匹配""" data_list = re.findall("a\w+ya", text) print(data_list)""" \d代指数字""" data_list = re.findall("\dali", text) print(data_list)"""贪婪匹配""" data_list = re.findall("\d+ali", text) print(data_list)""" \s代指意的空白符,包括空格、制表符等 """ """ ?问号代表前面的字符最多只可以出现一次(0次或1次)""" """ +?结合代指非贪婪匹配 """ data_list = re.findall("\s\w+?", text) print(data_list)
- 次数相关
""" * 重复0次或多次 + 重复1次或多次 ? 重复0次或1次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 """
- 括号(分组)
"""提取指定区域""" import retext = "Hello World! 123alialiya啊123alialiya啊 Hello"data_list = re.findall("1(\d{2}\w{3})", text) print(data_list)data_list = re.findall("!\s(1(\d{2}\w{3}))", text) print(data_list)
"""提取指定区域 + 或条件""" data_list = re.findall("([\s|\w]123)", text) print(data_list) # [' 123', '啊123']
2.起始和结束
- 场景:要求用户输入的内容必须是指定的内容开头和结尾
- ^ 起始
- $ 结束
- 示例:
import retext1 = "aliali@qq.comali" text2 = "1234567@qq.com"email_list = re.findall("^\d+@\w+.com$", text1) print(email_list) # [] email_list = re.findall("^\d+@\w+.com$", text2, re.ASCII) print(email_list) # ['1234567@qq.com']
3. 特殊字符
- 正则表达式中:* . \ { } ( ) 等都具有特殊的含义,匹配时需要转义
- 转义符号:\
4. re模块常用方法
- findall,获取匹配到的所有数据,返回list
import retext = "dsf130429191912015219k13042919591219521Xkk" data_list = re.findall("(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)", text) print(data_list) # [('130429', '1919', '12', '01', '521', '9'), ('130429', '1959', '12', '19', '521', 'X')]
- match,从起始位置开始匹配,匹配成功返回一个对象,未匹配成功返回None
import retext = "逗2B最逗3B欢乐" data = re.match("逗\dB", text) if data:content = data.group() # "逗2B"print(content)
- search,浏览整个字符串去匹配第一个,匹配成功返回对象,未匹配成功返回None
import retext = "大小逗2B最逗3B欢乐" data = re.search("逗\dB", text) if data:print(data.group()) # "逗2B"
- sub,替换匹配成功的位置
import retext = "逗2B最逗3B欢乐" data = re.sub("\dB", "沙雕", text, 1) # 替换一次,不指定次数默认替换全部 print(data) # 逗沙雕最逗3B欢乐
- split,根据匹配成功的位置分割,返回list
import retext = "逗2B最逗3B欢乐" data = re.split("\dB", text, 1) # 分割第一个,不指定次数时默认分割全部 print(data) # ['逗', '最逗3B欢乐']
- finditer,返回迭代器对象
import retext = "逗2B最逗3B欢乐" data = re.finditer("\dB", text) for item in data:print(item.group())data = re.finditer("(?P<xx>\dB)", text) # 命名分组 for item in data:print(item.groupdict())
- 例:判断字符串是否是合法的整数或小数(首位可能含有空格),例如:‘.12’, ‘12’, ‘1.2’, ‘1e+2’都是合法数,’.', ‘2 3’, '3e’不合法
import re s = ' -234.3e+3 ' res = re.match('^\ *[\+-]?(\d+\.?\d*|\.\d+)([eE][\+-]?\d+)?\ *$', s) # re.match方法,符合返回第一个成功的匹配,否则返回None if res:return True else:return False
Python正则表达式re库相关推荐
- 【转摘】PYTHON 正则表达式
网上转的一篇,把正则的规则系统的分类了.. 好文,共享,备查 ~~~~~~~~~~~ http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.ht ...
- Python正则表达式-2
本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程 ...
- Python正则表达式指南
Python正则表达式指南 本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表 ...
- python正则表达式指南_Python正则表达式指南
本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程 ...
- Python正则表达式指南上半部
本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程 ...
- python正则表达式_Python正则表达式简记和re库!
正则表达式是定义搜索模式的字符序列.通常这种模式被字符串搜索算法用于字符串上的"查找"或"查找和替换"操作,或者用于输入验证. 1. 正则表达式的语法 . 表示 ...
- python正则表达式:re库的使用
一.re re库是Python中使用正则表达式需要用到的库,是Python的标准库,无需安装,直接导入 二.正则表达式的表示类型 1.raw string类型(原生字符串类型):如r'[1-9]\d{ ...
- Python常用标准库之正则表达式
Python常用标准库之正则表达式 1.re模块常用函数 1.1 匹配对象以及group()和groups()方法 1.2 match()与search():匹配单个目标 1.3 findall(): ...
- Python正则表达式,看这一篇就够了
作者 | 猪哥 来源 | 裸睡的猪(ID: IT--Pig) 大多数编程语言的正则表达式设计都师从Perl,所以语法基本相似,不同的是每种语言都有自己的函数去支持正则,今天我们就来学习 Python中 ...
最新文章
- linux内核 cpu_die,解密“内核”,和“cpu”又有啥关系?
- 怎么使图表居中显示_文字怎么排版又精美又好看?
- 好书推介---Windows Server 2003企业部署原理与实践
- 运用神经网络方法找寻集成学习中的最优权重
- Dataset:数据集集合(NLP方向数据集)——常见的自然语言处理数据集大集合(建议收藏,持续更新)
- web后端开发学习路线_学习后端Web开发的最佳方法
- 使用mongoose来创建嵌入式websocket客户端和http客户端
- 【渝粤题库】陕西师范大学800000 地图学原理
- 使用iToolab UnlockGo for Mac如何绕过屏幕时间密码
- 连锁门店使用新零售连锁管理系统的价值在哪?
- python脚本——Excel处理
- DirectX Repair v4.2.0.40217 最新2022全能运行库系统修复工具增强版
- ios崩溃日志收集_iOS 崩溃日志分析(个人总结,最实用)
- 【猥琐流】制作一个隐藏在黑页下的大马并且添加后门
- 【数学】连续,一致连续,Hölder连续,Lipschitz连续
- MaaS在绽放,为人们提供出行自由:过渡到新的范式
- python模拟登录qq邮箱
- asterisk简单实用
- 批量修改文件后缀名(脚本)
- 检测JS数据类型的方法