学习python的正则表达式,主要有两个方面学习:

第一,学习如何写正则表达式,主要是掌握其语法规范。正则表达式的语法规范是通用的,对各种开发语言都是一致的。

第二,学习如何使用正则表达式,也就是掌握python中相应的模块,在python中,通过提供的标准模块 re 来提供相应的使用正则表达式的api

正则表达式的核心作用就是匹配文本片段,即给出一个正则表达式,以及一段文本,看看这段文本中哪些片段是可以与正则表达式匹配的。

利用正则表达式可以实现非常强大的文本处理功能,如匹配、查找、替换、分组等。

例1:我们先来看一个简单例子:

#coding=utf-8
import re #search的第一个参数是 正则表达式,第二个参数是要处理的文本
if re.search('abc','12abc45'): #结果输出find
print "find"
else:
print "None" #search的第一个参数是 正则表达式,第二个参数是要处理的文本
if re.match('abc','12abc45'): #结果输出None
print "find"
else:
print "None"

上面的代码涉及到如下信息:
1)re模块,这是python提供的处理正则表达式的标准模块,包含了很多有用的方法

2)re模块的search方法和match方法,这两个方法都是在给定文本中查找与指定正则表达式第一个相匹配的文本片段。如果找到,返回一个对象,对象中包含了相应的文本片段信息。如果找不到,返回None。所以其查找的结果可以用作条件表达式中。

search与match的区别是,search方法是在整个字符串中查找匹配的字串,而match方法是在开头匹配,也就是说必须开头就要符合。

3)search与match方法的第一个参数就是正在表达式,这里是一个普通的字符串,其实这是最简单的正则表达式。正则表达式最强大的之处就是它有各种元字符。

如  a.b  ,这里的.就是一个特殊字符,可以匹配任何单个字符(除换行符),如re.search('a.c','12axc45') 是可以匹配成功的。

例2:精确匹配的处理

上面介绍的 search 方法是在整个字符串中查找匹配,match方法是从头匹配,但对后面的无要求。

在某些场合下,需要精确匹配,如给定正则表达式为  a.c  ,希望只匹配 axc , abc 等,头尾不希望有多余的字符。

这是可在正则表达式的头加符号︿ ,在结尾加上 $ ,可以强制精确匹配。但然也可以只限制开始 或 结束。

使用 ︿,其实相当于使用match方法。

如:

>>> print re.search('^abc$','abcd')
None
>>> print re.search('^abc$','abc')
<_sre.SRE_Match object at 0x0339A020>

Python正则表达式一: 基本使用方法的更多相关文章

  1. python正则表达式之re模块方法介绍

    python正则表达式之re模块其他方法 1:search(pattern,string,flags=0) 在一个字符串中查找匹配 2:findall(pattern,string,flags=0) ...

  2. python正则表达式--findall、finditer方法

    findall方法 相比其他方法,findall方法有些特殊.它的作用是查找字符串中所有能匹配的字符串,并以结果存于列表中,然后返回该列表 注意: match 和 search 是匹配一次 finda ...

  3. python正则表达式02--findall()和search()方法区别,group()方法

    import re st = 'asxxixxsaefxxlovexxsdwdxxyouxxde' #search()和 findall()的区别 a = re.search('xx(.*?)xxsa ...

  4. python正则表达式基础,以及pattern.match(),re.match(),pattern.search(),re.search()方法的使用和区别

    正则表达式(regular expression)是一个特殊的字符序列,描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子字符串. 将匹配的子字符串替换或者从某个字符串中取出符合某个条件 ...

  5. python正则表达式详解之Match类及其方法

    1.Match对象简介 match对象通常是由正则表达式对象的match 方法,search 方法等经过匹配之后而产生.可以直接当做bool值使用,如果匹配则相当于True, 如果不匹配,则返回Non ...

  6. Python 正则表达式入门(初级篇)

    Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. 转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达 ...

  7. python正则表达式re

    Python正则表达式: re 正则表达式的元字符有. ^ $ * ? { [ ] | ( ).表示任意字符[]用来匹配一个指定的字符类别,所谓的字符类别就是你想匹配的一个字符集,对于字符集中的字符可 ...

  8. Python正则表达式详解

    我用双手成就你的梦想 python正则表达式 ^ 匹配开始 $ 匹配行尾 . 匹配出换行符以外的任何单个字符,使用-m选项允许其匹配换行符也是如此 [...] 匹配括号内任何当个字符(也有或的意思) ...

  9. 比较详细Python正则表达式操作指南(re使用)

    比较详细Python正则表达式操作指南(re使用) Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 E ...

  10. Python正则表达式学习摘要及资料

    摘要 在正则表达式中,如果直接给出字符,就是精确匹配. {m,n}? 对于前一个字符重复 m 到 n 次,并且取尽可能少的情况 在字符串'aaaaaa'中,a{2,4} 会匹配 4 个 a,但 a{2 ...

随机推荐

  1. js简繁转换,两种实现方式,妥妥的~

    不知道繁简按钮有什么卵用,大陆人自带繁简转换开关的好么,但是还是项目要求,做了这么一个功能,现在整理给大家用~完美兼容~么么哒 按钮的样式可以随便用css定义,注意id不要变,注意jq的事件绑定好就o ...

  2. headfirst之装饰模式

    class A A.hello class B extends A B.hello = A.hello+B 装饰模式:子类对父类想要包装的方法进行重写,使之成为加强版

  3. 块对象block小结

    blcok的形式 ^(参数列){主体} block作为返回值

  4. mysql 存储过程 游标的使用 与定义

    1.游标的作用及属性 游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作:游标有下面这些属性: a.游标是只读的,也就是不能更新它: b.游标是不能滚动的,也就是只能在一个方向上进 ...

  5. PHP学习遇到的问题

    使用php ob_start()模板生成html 内容无法撑开 生成后主要的内容 <body><warp><main> 生成后这个几个节点总是固定大小,不能被内容撑 ...

  6. IIS发布网站后局域网其他用户不能访问问题(转)

    如果本机能正常访问,而局域网其他用户不能访问,那么判断的结果很可能是防火墙问题. 解决方法: 既然问题出在Windows7或Windows Server 2008 R2的防火墙上,那么我们可以有以下两 ...

  7. ubuntu-10.04的测试环境 安装测试 Coreseek开源中文检索引擎-Sphinx中文版

    主要参考文档:http://www.coreseek.cn/products-install/install_on_bsd_linux/ 一. 32位版本: coreseek安装需要预装的软件: ap ...

  8. 通过web远程访问服务器的ipython

    如果想同过一个Web浏览器的方式远程访问服务器上的ipython notebook sever,可通过下面的步骤实现. 服务器:ubuntu14.04 server 客户端:windows/unix/ ...

  9. fiddler--手机https

    1.访问fiddler的主讲加端口,比如我的是:http://192.168.1.103:8080 在点击fiddlerroot  certificate 下载安装证书即可

  10. Ext Store Proxy Ajax

    使用Store ajax的方式来获取数据 <div id="grid1"> </div> <script> Ext.onReady(functi ...