Python入门教程-12 正则表达式
来源:互联网 发布:淘宝怎么举报假货 编辑:程序博客网 时间:2024/06/07 02:52
1. 概述
正则表达式是经常用到的一直字符串查找&匹配技术,通过正则表达式来处理字符串,远比字符串函数/方法要易读&易维护。
正则表达式通常并不是想象中的那么困难,只要克服心中的恐惧感、再加上一些实战(小练习即可),则可以迅速掌握常见的正则表达式技术。
2. 参考资料
Python使用的正则表达式语法,和TCL、Perl完全一样。因此,推荐一本非常好的讲解正则表达式的书籍,是《TCL/TK编程权威指南》,专门有一章循序渐进讲解正则表达式的语法。中文第三版扫描版下载地址:
- http://download.csdn.net/detail/sxwvkb123/4498336
- http://download.csdn.net/download/bigbird00/2826766
英文第四版的下载地址:
- http://download.csdn.net/download/bright0923/2963033
中文看起来比较快,毕竟是母语。但有些术语翻译得很诡异,所以还是要对照英文来看。
注:上面的英文版是chm格式的文件,在Linux下面可以按照chmsee软件。
Python网站上正则表达式的页面是:https://docs.python.org/3/library/re.html,这个页面提供有大量的示例,可以迅速掌握Python正则表达式的使用方法。
3. 示例概述
下面这个例子说明了通常的使用步骤:
1. import re
2. re.match:匹配,如果失败,返回None
3. result.group():获取每个匹配项的字符串,其中group(0)总是整个匹配的字符串。
import re result = re.match("^\d+-\d+-\d+$", "2015-03-20") if result is not None: # or if result: print "OK", result.group(0) else: print "FAIL"result = re.match("^(\d+)-(\d+)-(\d+)$", "2015-03-20") if result: print "OK", year = result.group(1) month = result.group(2) day = result.group(3) print "year:", year, ", month:", month, ", day:", dayelse: print "FAIL"
4. 一些示例
4.1 浮点数
假设我们要匹配的浮点数有这几种形式:123,123.456,.456。那么可以对应下面的示例代码:
import re import sys def usage(): print "ERROR! Usage: sys.argv[0], value"def is_double(s_value):result = re.match("^(\\d+\\.||\\.)?\\d+$", s_value) if result: return Trueelse:return Falseif __name__=="__main__": argc = len(sys.argv) if argc != 2: usage() sys.exit(-1) s_value = sys.argv[1] print "s_value:", s_value result = is_double(s_value) print result
运行效果:
C:\Python27>python e:\examples\python\is_double.py 5.6s_value: 5.6TrueC:\Python27>python e:\examples\python\is_double.py 5s_value: 5TrueC:\Python27>python e:\examples\python\is_double.py .43s_value: .43TrueC:\Python27>python e:\examples\python\is_double.py a.3s_value: a.3FalseC:\Python27>python e:\examples\python\is_double.py fdas_value: fdaFalse
todo
0 0
- Python入门教程-12 正则表达式
- 正则表达式入门教程
- 正则表达式快速入门教程
- 正则表达式入门教程
- js正则表达式入门教程
- 正则表达式快速入门教程
- 正则表达式入门教程
- 正则表达式入门教程
- 正则表达式入门教程
- 正则表达式入门教程
- 正则表达式入门教程
- 正则表达式入门教程
- 经典正则表达式入门教程
- perl入门教程:正则表达式
- 正则表达式入门教程
- 正则表达式快速入门教程
- 正则表达式入门教程
- 正则表达式入门教程
- Tiny6410 :一线触摸有没有劫持了LCD显示屏?
- 利用IPC$共享入侵windowsXP实践
- 第98天
- SOAP消息的基础传输DEMO
- spring 的JDBCTemplate的 queryForInt用法
- Python入门教程-12 正则表达式
- 黑马程序员 多态和多态的应用
- Hive本地独立模式安装
- 华为校园编码达人秀 模拟触摸屏的手势判断
- awk命令常用实例
- 设计模式 - 命令模式(command pattern) 详解
- POJ 2356 Find a multiple 鸽巢原理pigeon hole题解
- linux下开启ftp的21号端口
- 腾讯企业邮箱域名解析方法