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

Python 正则表达式

时间:2017-11-14 22:22:54      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:python 正则 re match compile

  正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。

  re 模块使 Python 语言拥有全部的正则表达式功能。compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。

  正则表达式的大致匹配过程是:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。如果表达式中有量词或边界,这个过程会稍微有一些不同,但也是很好理解的,看下图中的示例以及自己多使用几次就能明白。

技术分享

re模块

  Python通过re模块提供对正则表达式的支持。使用re的一般步骤是先将正则表达式的字符串形式编译为Pattern实例,然后使用Pattern实例处理文本并获得匹配结果(一个Match实例),最后使用Match实例获得信息,进行其他的操作。

  re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

re.match(pattern, string, flags=0)

  函数参数说明:pattern匹配的正则表达式;string要匹配的字符串;flags标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等。匹配成功re.match方法返回一个匹配的对象,否则返回None。我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。

import re
print(re.match(‘www‘, ‘www.baidu.com‘).span())  # 在起始位置匹配
print(re.match(‘com‘, ‘www.baidu.com‘))         # 不在起始位置匹配
line = "This is a test program" matchObj = re.match( r‘(.*) are (.*?) .*‘, line, re.M|re.I) if matchObj:  
  print "matchObj.group() : ", matchObj.group()   print "matchObj.group(1) : ", matchObj.group(1)   print "matchObj.group(2) : ", matchObj.group(2)
  else:  
  print "No match!!"
运行结果:
(0, 3)
None
matchObj.group() :  Cats are smarter than dogs
matchObj.group(1) :  Cats
matchObj.group(2) :  smarter












本文出自 “DreamScape” 博客,请务必保留此出处http://dyqd2011.blog.51cto.com/3201444/1981820

Python 正则表达式

标签:python 正则 re match compile

原文地址:http://dyqd2011.blog.51cto.com/3201444/1981820

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