码迷,mamicode.com
首页 > 编程语言 > 详细

[ Python ] 正则表达式(1)

时间:2017-08-28 21:50:28      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:import   nbsp   splay   icc   otn   cccccc   结果   jmx   bsp   

 

[ Python ] 正则表达式(1)

概念区分:搜索 ( Search ) 和 匹配 ( Match )

from re import search, match
search("nana", "banana") # Search succeeds!
search("bana", "banana") # Search succeeds!
match("nana", "banana")  # Match fail, returns None.
match("bana", "banana")  # Match succeeds!
  • 解释:在 Python 中,完成模式匹配(Patten-Matching)有两种方法,即这里的搜索和匹配。搜索指的是在字符串任意部分中搜索匹配的模式,匹配指的是判断一个字符串能否从起始处全部或者部分的匹配某个模式

正则表达式对象的编译

  • 使用re.compile(patten, flags=0)函数可以将一个模式串编译为正则表达式对象,编译过程不会重复执行,而re模块在底层匹配时总是生成正则表达式对象,预编译有利于加速程序运行速度
  • re模块对编译过的对象采用编译过的方法,但它和处理未编译的字串的函数是同名的,因此从代码文本上可以用同样的方式来做模式匹配

匹配对象的处理

  • 正则表达式的处理一般还涉及到另一个对象类型:匹配对象。它可能是matchsearch方法的结果,看起来像这样
import re
p = re.match("bana", "banana")
print(p) # <_sre.SRE_Match object; span=(0, 4), match=‘bana‘>
  • 对于这个对象,有两个常用的处理方法:groupgroups
  • group函数在不传递额外参数时返回整个匹配对象,或者根据传递的参数返回指定的匹配子组
  • groups函数返回一个包含所有匹配子组的元组
  • 所谓的匹配子组,即是在正则表达式中用圆括号括起来的一段,具体例子如下
import re
m = re.match(‘(\w\w\w)-(\d\d\d)‘, ‘abc-123‘)
m.group()  # ‘abc-123‘
m.group(0) # ‘abc-123‘
m.group(1) # ‘abc‘
m.group(2) # ‘123‘
m.groups() # (‘abc‘, ‘123‘)
?

[ Python ] 正则表达式(1)

标签:import   nbsp   splay   icc   otn   cccccc   结果   jmx   bsp   

原文地址:http://www.cnblogs.com/wander4096/p/7442161.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!