Python入门教程-12 正则表达式

1. 概述

正则表达式是经常用到的一直字符串查找&匹配技术,通过正则表达式来处理字符串,远比字符串函数/方法要易读&易维护。


2. 参考资料

Python使用的正则表达式语法,和TCL、Perl完全一样。因此,推荐一本非常好的讲解正则表达式的书籍,是《TCL/TK编程权威指南》,专门有一章循序渐进讲解正则表达式的语法。中文第三版扫描版下载地址:

英文第四版的下载地址:

中文看起来比较快,毕竟是母语。但有些术语翻译得很诡异,所以还是要对照英文来看。


注:上面的英文版是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:", day
else:
    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 True
	else:
		return False

if __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.6
s_value: 5.6
True

C:\Python27>python e:\examples\python\is_double.py 5
s_value: 5
True

C:\Python27>python e:\examples\python\is_double.py .43
s_value: .43
True

C:\Python27>python e:\examples\python\is_double.py a.3
s_value: a.3
False

C:\Python27>python e:\examples\python\is_double.py fda
s_value: fda
False




todo


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值