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())
    
  1. 例:判断字符串是否是合法的整数或小数(首位可能含有空格),例如:‘.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库相关推荐

  1. 【转摘】PYTHON 正则表达式

    网上转的一篇,把正则的规则系统的分类了.. 好文,共享,备查 ~~~~~~~~~~~ http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.ht ...

  2. Python正则表达式-2

    本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程 ...

  3. Python正则表达式指南

    Python正则表达式指南 本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表 ...

  4. python正则表达式指南_Python正则表达式指南

    本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程 ...

  5. Python正则表达式指南上半部

    本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程 ...

  6. python正则表达式_Python正则表达式简记和re库!

    正则表达式是定义搜索模式的字符序列.通常这种模式被字符串搜索算法用于字符串上的"查找"或"查找和替换"操作,或者用于输入验证. 1. 正则表达式的语法 . 表示 ...

  7. python正则表达式:re库的使用

    一.re re库是Python中使用正则表达式需要用到的库,是Python的标准库,无需安装,直接导入 二.正则表达式的表示类型 1.raw string类型(原生字符串类型):如r'[1-9]\d{ ...

  8. Python常用标准库之正则表达式

    Python常用标准库之正则表达式 1.re模块常用函数 1.1 匹配对象以及group()和groups()方法 1.2 match()与search():匹配单个目标 1.3 findall(): ...

  9. Python正则表达式,看这一篇就够了

    作者 | 猪哥 来源 | 裸睡的猪(ID: IT--Pig) 大多数编程语言的正则表达式设计都师从Perl,所以语法基本相似,不同的是每种语言都有自己的函数去支持正则,今天我们就来学习 Python中 ...

最新文章

  1. linux内核 cpu_die,解密“内核”,和“cpu”又有啥关系?
  2. 怎么使图表居中显示_文字怎么排版又精美又好看?
  3. 好书推介---Windows Server 2003企业部署原理与实践
  4. 运用神经网络方法找寻集成学习中的最优权重
  5. Dataset:数据集集合(NLP方向数据集)——常见的自然语言处理数据集大集合(建议收藏,持续更新)
  6. web后端开发学习路线_学习后端Web开发的最佳方法
  7. 使用mongoose来创建嵌入式websocket客户端和http客户端
  8. 【渝粤题库】陕西师范大学800000 地图学原理
  9. 使用iToolab UnlockGo for Mac如何绕过屏幕时间密码
  10. 连锁门店使用新零售连锁管理系统的价值在哪?
  11. python脚本——Excel处理
  12. DirectX Repair v4.2.0.40217 最新2022全能运行库系统修复工具增强版
  13. ios崩溃日志收集_iOS 崩溃日志分析(个人总结,最实用)
  14. 【猥琐流】制作一个隐藏在黑页下的大马并且添加后门
  15. 【数学】连续,一致连续,Hölder连续,Lipschitz连续
  16. MaaS在绽放,为人们提供出行自由:过渡到新的范式
  17. python模拟登录qq邮箱
  18. asterisk简单实用
  19. 批量修改文件后缀名(脚本)
  20. 检测JS数据类型的方法

热门文章

  1. Oracle中创建和使用触发器Trigger
  2. js编写计算圆周长和面积
  3. ppp项目是什么意思?ppp模式是什么意思?PPP问题大全
  4. Java基础——狂神说
  5. 年历实现代码(java)
  6. QGraphicsItem图元旋转缩放和自定义图元(三)
  7. JSTL 标签库c:if :forEach :forTokens
  8. LeetCode-55、跳跃游戏-中等
  9. 喜讯 | 人大金仓荣获行业信息化领航企业奖
  10. 玩一玩Spring容器(可视化笔记02)