Python入门基础总结笔记——正则表达式
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入门基础总结笔记——正则表达式相关推荐
- Python入门基础学习笔记
Python笔记 笔记介绍 我学习的课程链接 利用python编写程序进行温度单位的转换 这是重点 编程画图 重点 知识点 turtle的RGB色彩模式 编程画出同心圆 编程画出五角星 绘制蟒蛇 Py ...
- Python入门-基础语法笔记
1.vi技巧: 中英切换:shift wq = x 2.注释 单行:# 多行:三个单引号或三个双引号 """ print("hello world") ...
- Python入门-基础篇笔记02
列表List 格式:list = ["str1", "str2", "str3"] list[0] = "str1" 添 ...
- python笔记基础-Python入门基础知识学习笔记之一
为什么要写这篇文章? 本人做过Objective-C开发,现在在用C#做WinForm开发.近段时间在学习Python入门基础知识时,发现有很多知识点和Objective-C的不一样.故想通过本文记录 ...
- B站马士兵python入门基础版详细笔记(6)
前言: 这篇文章是B站学习python入门基础班的视频的第五 六章内容,主要讲述的是列表,主要包括列表的创建,以及他的元素的增.删.查.改操作命令. 一.列表的初始化 为什么要使用列表? 列表就好比C ...
- B站马士兵python入门基础版详细笔记(4)
前言: 这篇文章是B站学习python入门基础班的视频的第四章内容,主要讲述的是if-else语句,但是不包括循环结构,循环结构在下一章笔记中有记叙 一.顺序结构 什么是顺序结构呢?比如说 '''把大 ...
- 【目录】Python 入门基础篇 <(^-^)>
Python 入门基础篇 一.关于Python的介绍与准备工作 Python基础介绍 Jupyter notebook基础介绍 Jupyter notebook打开问题 Jupyter noteboo ...
- (Python入门)学习笔记一,初次接触尝试使用Python——环境搭建与配置
(Python入门)学习笔记一,初次接触尝试使用Python 早就耳闻Python大名,搞大数据.做人工智能.整机器学习,就得了解Python.之前一直没有去了解,现在由于之前一个项目涉及到一点Pyt ...
- (Python入门)学习笔记二,Python学习路线图
(Python入门)学习笔记二,Python学习路线图 千里之行始于足下,谋定而后动,冰冻三尺非一日之寒.之所以说这三句话,就是对于下面整理的路线图,即不让自己感觉路途的遥远而感到达到巅峰神界的遥遥无 ...
最新文章
- 图像在计算机中通过什么方式表示_万物皆可“计算机视觉”
- centos静态IP配置方法
- 高效程序员的45个习惯 pdf_高效瑜伽人的 5 个习惯,你get到了几个?
- python主函数入口_Python 入口函数(菜鸟入门)
- Java并发专题 带返回结果的批量任务执行 CompletionService ExecutorService.invokeAll(转)...
- php+mysql多事务处理_php+mysql事务处理
- 全量增量数据同步方法(Hive date_add date_sub)
- OpenGL超级宝典 纹理(一)
- 笔记本电脑分屏操作指南
- 百度地图 创建应用
- 洛谷—— P1069 细胞分裂
- 关于深拷贝与浅拷贝的问题?
- 信息短信服务器发送失败怎么办,短信发送失败如何设置
- web面向接口_面向未来的响应式Web开发
- 3d Max人物动画学习笔记(一) 骨骼创建
- nacos registry, gateway register failed java.lang.IllegalArgumentException: no server available
- Python编辑基础课后习题(持续更新)
- ASP.NET CORE 内置的IOC解读及使用
- python和c语言哪个更难学深_c语言和python先学哪个比较简单
- 【Java基础】集合总结(三)——Queue集合、Map集合