re模块详解

 

复制代码
  1 #!/usr/bin/env python
  2 #-*- coding:UTF-8 -*-  3 #####################################################  4 # Author: sunfx xingrhce@163.com  5 # Last modified: 2014/11/18  6 # Filename: re.py  7 # Q Q 群: 236147801  8 #####################################################  9  10 import re  11  12 #1.查找文本中的字符  13  14 pattern = 'this'  15 text = 'Does this text match the pattern?'  16  17 match = re.search(pattern,text)  18  19 s = match.start()  20 e = match.end()  21  22 print 'Found "%s"\nin "%s"\nfrom %d to %d ("%s")' %\  23  (match.re.pattern,match.string,s,e,text[s:e])  24  25 '''  26 match.re.pattern 要匹配的内容  27 match.string 匹配的字符  28 s 匹配到内容开始索引  29 d 匹配到内容结束索引  30 text[s:e] 匹配字符  31 '''  32  33 #2.编译表达式  34  35 regexes = [ re.compile(p)  36 for p in ['this','that']  37 ] #把字符转换Regexobject格式  38  39  40  41 print 'Text: %r\n' % text #输出text内容  42  43 for regex in regexes:  44  45 print 'Seeking "%s"->' % regex.pattern, #regex.pattern 要匹配的字符  46  47 if regex.search(text): #在text中搜索this or that  48  49 print 'match!'  50  51 else:  52  53 print 'no match'  54  55 #3.多重匹配  56  57 text = 'abbaaabbbbaaaaa'  58  59 pattern = 'ab'  60  61 for match in re.findall(pattern,text):  62  63 print 'Found: "%s"' % match  64  65 #findall 直接返回字符串  66  67  68 for match in re.finditer(pattern,text):  69 s = match.start()  70 e = match.end()  71 print 'Found "%s" at %d:%d' % (text[s:e],s,e)  72  73 #finditer 返回原输入文字在字符串的位置  74  75 #4.模式语法  76  77 def test_patterns(text,patterns=[]):  78  79 for pattern,desc in patterns:  80 print 'Pattern %r (%s) \n' %(pattern,desc)  81 print ' %r' % text  82 for match in re.finditer(pattern,text):  83 s = match.start()  84 e = match.end()  85 substr = text[s:e] #匹配到的字符  86 n_backslashes = text[:s].count('\\') #查找文本:s坐标之前的包含多少\\  87 prefix = '.' * ( s + n_backslashes )  88 print ' %s%r' % (prefix,substr)  89 print  90 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值