1. #正则表达式和re模块
  2. # match(pattern, string,[flag]) #在字符串开始时进行匹配
  3. # pattern 正则表达式
  4. # string 要匹配的字符串
  5. # [flag] 可选标志位,用于控制匹配方式,不区分大小写等
  6. # 匹配字符串是否以mr_开头,不区分大小写
  7. import re
  8. pattern = r'mr_\w+'
  9. string = 'MR_Shop mr_shop'
  10. match = re.match(pattern,string,re.I) #re.I表示不区分大小写
  11. print(match) #匹配成功返回match对象
  12. print('匹配起始位置:',match.start())
  13. print('匹配结束位置:',match.end())
  14. print('匹配位置元组:',match.span())
  15. print('要匹配的字符串:',match.string)
  16. print('匹配到的数据:',match.group())
  17. string = '项目名称MR_SHOP mr_shop'
  18. match = re.match(pattern,string,re.I)
  19. print(match) #匹配失败返回None
  20. # 验证输入号码是否是中国移动的号码
  21. import re
  22. pattern = r'(13[4-9]\d{8})|(147)|(15[012789]\d{8})|18[278]\d{8}'
  23. mobile_1 = '15312584698'
  24. match = re.match(pattern,mobile_1)
  25. if match == None:
  26. print(mobile_1,'不是中国移动号码')
  27. else:
  28. print(mobile_1,'是中国移动号码')
  29. mobile_2 = '15123654785'
  30. match = re.match(pattern,mobile_2)
  31. if match== None:
  32. print(mobile_2, '不是中国移动号码')
  33. else:
  34. print(mobile_2, '是中国移动号码')
  35. # re.search(pattern,string,[flag]) 搜索第一个匹配的值
  36. import re
  37. pattern = r'mr_\w+'
  38. string = 'MR_SHOP mr_SHOP'
  39. match =re.search(pattern,string,re.I)
  40. print(match) #匹配成功返回match对象,输出匹配结果
  41. string = '项目名称MR_SHOP mr_shop'
  42. match = re.search(pattern,string,re.I)
  43. print(match)
  44. # re.finall(pattern,string,[flag]) 匹配所有符合正则表达式的字符串
  45. import re
  46. pattern = r'mr_\w+'
  47. string = 'MR_SHOP mr_SHOP'
  48. match =re.findall(pattern,string,re.I)
  49. print(match) #匹配成功以列表形式返回
  50. string = '项目名称MR_SHOP mr_shop'
  51. match = re.findall(pattern,string,re.I)
  52. print(match)
  53. #模式字符串包含分组则返回匹配文本
  54. import re
  55. pattern = r'([1-9]{3}(\.[0-9]{1,3}){3})'
  56. string_1 = '127.25.36.3 152.36.22.3'
  57. match = re.findall(pattern,string_1) #想要获取整个模式字符串的匹配,需要将模式字符串用小括号括起来
  58. for item in match:
  59. print(item[0])
  60. # 字符串替换
  61. # re.sub(pattern,repl,string,count,flags)
  62. # pattern 正则表达式
  63. # repl 要替换的字符串
  64. # string 被查找替换的原始字符串
  65. # count 可选参数,模式匹配后替换的最大次数,默认为0,表示替换所有
  66. # flag 可选参数,控制匹配方式
  67. # 替换危险字符
  68. import re
  69. pattern = r'(黑客)|(监听)|(抓包)|(Trojan)'
  70. string = '我是一名程序员,喜欢看黑客方面的书,想研究一下Trojan'
  71. sub = re.sub(pattern,'**',string)
  72. print(sub)
  73. string = '我是一名程序员,喜欢看计算机网络方面的书,喜欢开发网站'
  74. sub = re.sub(pattern,'**',string)
  75. print(sub)
  76. # 使用正则表达式分割字符串
  77. # re.split(pattern,string,[maxsplit],[flags])
  78. # pattern 正则表达式
  79. # string 匹配字符串
  80. # maxsplit 设置最大拆分次数
  81. # flags 标志位,控制匹配参数
  82. # 输出被@的好友名称
  83. import re
  84. str1 = '@扎克伯格 @马云 @俞敏洪'
  85. pattern = r'\s*@'
  86. list1 = re.split(pattern,str1)
  87. print("您@的好友:")
  88. for item in list1:
  89. if item != "": #输出不为空的元素
  90. print(item)

python学习笔记(十)——正则表达式和re模块的更多相关文章

  1. Python学习笔记(十二)—Python3中pip包管理工具的安装【转】

    本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...

  2. python学习笔记(26)-request模块

    python学习笔记 #requests import requests #from class_005.http_resuest import HttpRequest login_url = &qu ...

  3. Python学习笔记十_模块、第三方模块安装、模块导入

    一.模块.包 1.模块 模块实质上就是一个python文件.它是用来组织代码的,意思就是把python代码写到里面,文件名就是模块的名称,test.py test就是模块的名称 2.包 包,packa ...

  4. python学习笔记十——模块与函数

    第五章 模块与函数 5.1 python程序的结构 函数+类->模块              模块+模块->包                 函数+类+模块+包=Python pyth ...

  5. Python学习笔记4(函数与模块)

    1.Python程序的结构 Python的程序由包(package).模块(module)和函数组成. 模块是处理一类问题的集合,由函数和类组成. 包是由一系列模块组成的集合.包是一个完成特定任务的工 ...

  6. Python 学习 第十五篇:模块搜索路径和包导入

    在导入自定义的模块时,除了指定模块名之外,也需要指定目录,由于Python把目录称作包,因此,这类导入被称为包导入.包导入把计算机上的目录变成Python的命名空间,而目录中所包含的子目录和模块文件则 ...

  7. python学习笔记:第八天(模块)

    Python3 模块 脚本上是用 python 解释器来编程,如果从 Python 解释器退出再进入,那么定义的所有的方法和变量就都消失了. 为此 Python 提供了一个办法,把这些定义存放在文件中 ...

  8. python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)

    一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...

  9. python 学习笔记十六 django深入学习一 路由系统,模板,admin,数据库操作

    django 请求流程图 django 路由系统 在django中我们可以通过定义urls,让不同的url路由到不同的处理函数 from . import views urlpatterns = [ ...

  10. Python学习笔记013_正则表达式

    Python中的正则表达式是通过 re 模块实现的. 通配符 .  表示除了换行以外的任何字符; 编写正则表达式时使用  r're'  , r + 正则表达式内容 >>> impor ...

随机推荐

  1. redis性能

  2. Typora 精美而强大的Markdown编辑器 转

    Typora 精美而强大的Markdown编辑器 Markdown编辑器千千万,可是有颜值.功能强并且免费的,就没有几个了.之前一直在用Mou,分屏预览模式方便得很,是一个非常好的选择.不过这篇可不是 ...

  3. react 的生命周期函数

    生命周期函数: 是指在某一时刻组件自动执行 的函数 初始化: 设置props和state mounting: componentWillMount 在组件即将被挂载到页面的时候自动执行 render ...

  4. appium1.4+华为8.0执行自动化脚本,报启动session失败,原因是unicode_ime_apk\Uni codeIME-debug.apk在手机上已存在,再次安装失败,导致启动session失败,解决办法:换高版本的appium

    最开始做Android自动化测试时,通过执行脚本发现报,已安装UnicodeIME-debug.apk,再次安装失败,当时觉得这个apk对我来说没用,就把D:\Program Files (x86)\ ...

  5. github fork代码后提交

    点击他人github上的fork 在自己的Github上将代码拷贝下来 git clone 在本地修改代码后创建分支 git checkout -b work master(work为新建的特性分支, ...

  6. spring接收文件资源

    提交请求的contentType为multipart/form-data 图片提交在form中的名称为file 后端接收示例 @RequestMapping("/picture") ...

  7. Kylin-2.6.2集群部署

    1. 集群节点规划与说明 rzx1 all rzx2 query rzx3 query 说明: Kylin节点角色有三种: all: 包含query和job query: 查询节点 job: 工作节点 ...

  8. JS时间差(毫秒/天数/月份)

    var startDate = "2016-06-06"; var endDate = "2016-08-08"; var start=new Date(sta ...

  9. Tyvj 1518 CPU监控(线段树)

    题目描述: Bob需要一个程序来监视CPU使用率.这是一个很繁琐的过程,为了让问题更加简单,Bob会慢慢列出今天会在用计算机时做什么事. Bob会干很多事,除了跑暴力程序看视频之外,还会做出去玩玩和用 ...

  10. docker 网络和/etc/docker/daemon.json文件详情

    /etc/docker/daemon.json(没有就创建) [root@master ~]# /etc/docker/deamon.json { "registry-mirrors&quo ...