常用的命令: http://www.runoob.com/python/python-reg-expressions.html

使用中相关注意问题:

1. 中括号里的表示从N到M需要用横线‘-’, 而大括号里表示从N-M需要用逗号‘,’,如:

【0-9】:表示匹配0-9之间的数字

【0-9】{3,8}:表示匹配3到8个0-9之间的数字

2. 一些字符符号,被中括号包含的时候,就表示匹配相同的字符\符号,如

r = r'.', 这个正则表达式匹配的是任意一个字符,包含数字,字母,字符

r1 = r'[.]' 这个正则表达式匹配的是一个点‘.’

实例:编写一个验证email地址的正则表达式

# _*_ coding:utf-8_*_
import re # 导入Python正则表达式模块 class IsValidEmail:
def is_valid_email(self, addr):
'''
定义正字表达式
^:以。。开头
[a-zA-Z0-9]:包含一个字符或者数字
[a-zA-Z0-9_.]+:包含至少一个字符或者一个数字或者下划线或者点号'.'的字符串
{n}表示前面定义的字符的长度,包括n个
:param addr:需要验证的address
:return: 合法返回True,否则返回False
'''
r = r'(^[a-zA-Z0-9][a-zA-Z0-9_.]+([a-zA-Z0-9])@[a-zA-Z0-9]+(.[a-zA-Z]{3})$)'
try:
if re.match(r, addr):
print('address: %s is ok' % addr)
return True
else:
print('address: %s is not valid' % addr)
return False
except ValueError:
print('please input a email address') if __name__ == '__main__':
d = IsValidEmail()
assert(d.is_valid_email('sss@163.com'))
assert(d.is_valid_email('someone@gmail.com'))
assert(d.is_valid_email('bill.gates@microsoft.com'))
assert not(d.is_valid_email('bob#example.com'))
assert not(d.is_valid_email('mr-bob@example.com'))
assert not(d.is_valid_email('sandytest@@163.com'))

Python正则表达式学习记录的更多相关文章

  1. Python正则表达式学习摘要及资料

    摘要 在正则表达式中,如果直接给出字符,就是精确匹配. {m,n}? 对于前一个字符重复 m 到 n 次,并且取尽可能少的情况 在字符串'aaaaaa'中,a{2,4} 会匹配 4 个 a,但 a{2 ...

  2. Python 正则表达式学习

    摘要 在正则表达式中,如果直接给出字符,就是精确匹配. {m,n}? 对于前一个字符重复 m到 n 次,并且取尽可能少的情况 在字符串'aaaaaa'中,a{2,4} 会匹配 4 个 a,但 a{2, ...

  3. Python 正则表达式学习摘要及资料

    来源:Michael_翔_ 摘要 在正则表达式中,如果直接给出字符,就是精确匹配. {m,n}? 对于前一个字符重复 m 到 n 次,并且取尽可能少的情况 在字符串'aaaaaa'中,a{2,4} 会 ...

  4. JS正则表达式学习记录

    JS:正则表达式学习记录 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  5. Python 正则表达式学习笔记

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

  6. 7.Python 正则表达式学习笔记

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

  7. Python正则表达式 学习笔记

    python第一个正则表达式 1. import re : python正则表达式模块 2. 第一个正则表达式 re.compile(r'imooc') pattern.match('imooc py ...

  8. Python爬虫学习记录【内附代码、详细步骤】

    引言: 昨天在网易云课堂自学了<Python网络爬虫实战>,视频链接 老师讲的很清晰,跟着实践一遍就能掌握爬虫基础了,强烈推荐! 另外,在网上看到一位学友整理的课程记录,非常详细,可以优先 ...

  9. python爬虫学习记录

    爬虫基础 urllib,urllib2,re都是python自带的模块 urllib,urllib2区别是urllib2可以接受一个Request类的实例来设置url请求的headers,即可以模拟浏 ...

随机推荐

  1. SQL-33 创建一个actor表,包含如下列信息

    题目描述   创建一个actor表,包含如下列信息 列表 类型 是否为NULL 含义 actor_id smallint(5) not null 主键id first_name varchar(45) ...

  2. Android开发 ---如何操作资源目录中的资源文件5 ---Raw资源管理与国际化

    效果图: 1.activity_main.xml 描述: 定义两个按钮,一个是Raw资源管理,一个是处理国际化语言,其中i18n表示简体中文 <?xml version="1.0&qu ...

  3. elasticsearch.in.sh优化内存

    elasticsearch.in.sh文件主要是内存优化 ES_MIN_MEM=24g(24g是物理内存的一半) ES_MAX_MEM=24g ES调优: 1.Java层面的调优,加大JVM的可用内存 ...

  4. python储存数据的方式

    python储存数据的方式2017年10月13日 23:38:10 Nick_Spider 阅读数:59286 标签: redis 数据库 爬虫 存储 结构 更多 个人分类: 数据库 爬虫 pytho ...

  5. 某关于数位DP的一节课后的感受

    题目 求给定区间[x,y]中满足下列条件的整数个数,这个数恰好等于k个互不相等的B的整数次幂之和 Input 15 20 2 2 Out 17 18 20 示例:17=24+20 18=24+21 2 ...

  6. vue 之 key

    key 的特殊属性主要用在 Vue的虚拟DOM算法,在新旧nodes对比时辨识VNodes.如果不使用key,Vue会使用一种最大限度减少动态元素并且尽可能的尝试修复/再利用相同类型元素的算法.使用k ...

  7. mbpoll Test FreeModbus TCP Demo

    /********************************************************************************* * mbpoll Test Fre ...

  8. Mac os fatal error: 'numpy/arrayobject.h' file not found

    $ python setup.py install 出错信息如: clang -fno-strict-aliasing -fno-common -dynamic -g -O2 -DNDEBUG -g ...

  9. Unity 3D光源-Point Light点光源详解/灯泡、模拟灯光效果教程

    Unity4大光源之点光源 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...

  10. 腾讯云JavaWeb环境配置

    腾讯云服务器Centos7系统配置javaWeb运行环境 java1.8 运行命令列表 yum list java-* 安装相应版本的jdk,一般含有devel的就是真正的jdk,如:java-1.8 ...