Python入门基础总结笔记——正则表达式

完整基础知识参看网站:正则表达式

总结重点

用\d可以匹配一个数字,\w可以匹配一个字母或数字
用*表示任意个字符(包括0个),用+表示至少一个字符
用?表示0个或1个字符
用{n}表示n个字符,用{n,m}表示n-m个字符:

练习一:
请尝试写一个验证Email地址的正则表达式。版本一应该可以验证出类似的Email:
someone@gmail.com
bill.gates@microsoft.com

import re  #正则表达式用到re模块def is_valid_email(addr):#match()方法判断是否匹配,如果匹配成功,返回一个Match对象,否则返回None#使用Python的r前缀,就不用考虑转义的问题if (re.match(r'^\w+\.?\w+\@\w+\.com',addr)):return  Trueelse:return  False# 测试:
assert is_valid_email('someone@gmail.com')
assert is_valid_email('bill.gates@microsoft.com')
assert not is_valid_email('bob#example.com')
assert not is_valid_email('mr-bob@example.com')
print('ok')#结果
ok

练习二:
版本二可以提取出带名字的Email地址:
tom@voyager.org => Tom Paris
bob@example.com => bob

import redef name_of_email(addr):m=re.match(r'^<?(\w+\s*\w*)>?\s*\w*\@\w+\.org',addr)if m == None:return Noneelse:return m.group(1)# 测试:
assert name_of_email('<Tom Paris> tom@voyager.org') == 'Tom Paris'
assert name_of_email('tom@voyager.org') == 'tom'
print('ok')#结果
ok

其中group具有提取分组的能力:

>>> m = re.match(r'^(\d{3})-(\d{3,8})$', '010-12345')
>>> m
<_sre.SRE_Match object; span=(0, 9), match='010-12345'>
>>> m.group(0) #原始字符串
'010-12345'
>>> m.group(1) #第一个字符串(括号)
'010'
>>> m.group(2) #第二个字符串(括号)
'12345'

Python入门基础总结笔记——正则表达式相关推荐

  1. Python入门基础学习笔记

    Python笔记 笔记介绍 我学习的课程链接 利用python编写程序进行温度单位的转换 这是重点 编程画图 重点 知识点 turtle的RGB色彩模式 编程画出同心圆 编程画出五角星 绘制蟒蛇 Py ...

  2. Python入门-基础语法笔记

    1.vi技巧: 中英切换:shift wq = x 2.注释 单行:# 多行:三个单引号或三个双引号 """ print("hello world") ...

  3. Python入门-基础篇笔记02

    列表List 格式:list = ["str1", "str2", "str3"] list[0] = "str1" 添 ...

  4. python笔记基础-Python入门基础知识学习笔记之一

    为什么要写这篇文章? 本人做过Objective-C开发,现在在用C#做WinForm开发.近段时间在学习Python入门基础知识时,发现有很多知识点和Objective-C的不一样.故想通过本文记录 ...

  5. B站马士兵python入门基础版详细笔记(6)

    前言: 这篇文章是B站学习python入门基础班的视频的第五 六章内容,主要讲述的是列表,主要包括列表的创建,以及他的元素的增.删.查.改操作命令. 一.列表的初始化 为什么要使用列表? 列表就好比C ...

  6. B站马士兵python入门基础版详细笔记(4)

    前言: 这篇文章是B站学习python入门基础班的视频的第四章内容,主要讲述的是if-else语句,但是不包括循环结构,循环结构在下一章笔记中有记叙 一.顺序结构 什么是顺序结构呢?比如说 '''把大 ...

  7. 【目录】Python 入门基础篇 <(^-^)>

    Python 入门基础篇 一.关于Python的介绍与准备工作 Python基础介绍 Jupyter notebook基础介绍 Jupyter notebook打开问题 Jupyter noteboo ...

  8. (Python入门)学习笔记一,初次接触尝试使用Python——环境搭建与配置

    (Python入门)学习笔记一,初次接触尝试使用Python 早就耳闻Python大名,搞大数据.做人工智能.整机器学习,就得了解Python.之前一直没有去了解,现在由于之前一个项目涉及到一点Pyt ...

  9. (Python入门)学习笔记二,Python学习路线图

    (Python入门)学习笔记二,Python学习路线图 千里之行始于足下,谋定而后动,冰冻三尺非一日之寒.之所以说这三句话,就是对于下面整理的路线图,即不让自己感觉路途的遥远而感到达到巅峰神界的遥遥无 ...

最新文章

  1. 图像在计算机中通过什么方式表示_万物皆可“计算机视觉”
  2. centos静态IP配置方法
  3. 高效程序员的45个习惯 pdf_高效瑜伽人的 5 个习惯,你get到了几个?
  4. python主函数入口_Python 入口函数(菜鸟入门)
  5. Java并发专题 带返回结果的批量任务执行 CompletionService ExecutorService.invokeAll(转)...
  6. php+mysql多事务处理_php+mysql事务处理
  7. 全量增量数据同步方法(Hive date_add date_sub)
  8. OpenGL超级宝典 纹理(一)
  9. 笔记本电脑分屏操作指南
  10. 百度地图 创建应用
  11. 洛谷—— P1069 细胞分裂
  12. 关于深拷贝与浅拷贝的问题?
  13. 信息短信服务器发送失败怎么办,短信发送失败如何设置
  14. web面向接口_面向未来的响应式Web开发
  15. 3d Max人物动画学习笔记(一) 骨骼创建
  16. nacos registry, gateway register failed java.lang.IllegalArgumentException: no server available
  17. Python编辑基础课后习题(持续更新)
  18. ASP.NET CORE 内置的IOC解读及使用
  19. python和c语言哪个更难学深_c语言和python先学哪个比较简单
  20. 【Java基础】集合总结(三)——Queue集合、Map集合

热门文章

  1. Hyperledger Fabric 2.1 BYFN 测试用例
  2. 【概念】数据仓库和数仓建模
  3. 内存管理(二) - MRC关键字解读
  4. 手把手教你搭建国产嵌入式模拟器SkyEye开发环境
  5. Cesium之粒子---简单粒子特效
  6. Office办公 WPS如何设置页边距
  7. 想要分离歌曲内的伴奏?轻松搞定
  8. pmw原理c语言,详细解析单片机 PMW 控制基本原理
  9. 邮件解析引擎FastMail库大功告成!
  10. 字符转换 (15分)