Python正则表达式一: 基本使用方法
学习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正则表达式一: 基本使用方法的更多相关文章
- python正则表达式之re模块方法介绍
python正则表达式之re模块其他方法 1:search(pattern,string,flags=0) 在一个字符串中查找匹配 2:findall(pattern,string,flags=0) ...
- python正则表达式--findall、finditer方法
findall方法 相比其他方法,findall方法有些特殊.它的作用是查找字符串中所有能匹配的字符串,并以结果存于列表中,然后返回该列表 注意: match 和 search 是匹配一次 finda ...
- python正则表达式02--findall()和search()方法区别,group()方法
import re st = 'asxxixxsaefxxlovexxsdwdxxyouxxde' #search()和 findall()的区别 a = re.search('xx(.*?)xxsa ...
- python正则表达式基础,以及pattern.match(),re.match(),pattern.search(),re.search()方法的使用和区别
正则表达式(regular expression)是一个特殊的字符序列,描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子字符串. 将匹配的子字符串替换或者从某个字符串中取出符合某个条件 ...
- python正则表达式详解之Match类及其方法
1.Match对象简介 match对象通常是由正则表达式对象的match 方法,search 方法等经过匹配之后而产生.可以直接当做bool值使用,如果匹配则相当于True, 如果不匹配,则返回Non ...
- Python 正则表达式入门(初级篇)
Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. 转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达 ...
- python正则表达式re
Python正则表达式: re 正则表达式的元字符有. ^ $ * ? { [ ] | ( ).表示任意字符[]用来匹配一个指定的字符类别,所谓的字符类别就是你想匹配的一个字符集,对于字符集中的字符可 ...
- Python正则表达式详解
我用双手成就你的梦想 python正则表达式 ^ 匹配开始 $ 匹配行尾 . 匹配出换行符以外的任何单个字符,使用-m选项允许其匹配换行符也是如此 [...] 匹配括号内任何当个字符(也有或的意思) ...
- 比较详细Python正则表达式操作指南(re使用)
比较详细Python正则表达式操作指南(re使用) Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 E ...
- Python正则表达式学习摘要及资料
摘要 在正则表达式中,如果直接给出字符,就是精确匹配. {m,n}? 对于前一个字符重复 m 到 n 次,并且取尽可能少的情况 在字符串'aaaaaa'中,a{2,4} 会匹配 4 个 a,但 a{2 ...
随机推荐
- Oracle查询表结构的常用语句
1. 查询表结构基本信息 select * from user_tables t,user_tab_comments c where c.table_name = t.table_name and t ...
- 转 --maven系列之二 安装与配置
http://blog.csdn.net/jiuqiyuliang/article/details/45390313 [项目管理和构建]——Maven下载.安装和配置(二) 标签: 工具开发maven ...
- BZOJ 1935: [Shoi2007]Tree 园丁的烦恼( 差分 + 离散化 + 树状数组 )
假如矩阵范围小一点就可以直接用二维树状数组维护. 这道题, 差分答案, 然后一维排序, 另一维离散化然后树状数组维护就OK了. ----------------------------------- ...
- Spark源码学习1
转自:http://www.cnblogs.com/hseagle/p/3664933.html 一.基本概念(Basic Concepts) RDD - resillient distributed ...
- 老旧Webkit浏览器行内元素0间距问题
有时我们希望display:inline-block的元素之间的天衣无缝.紧密相依,比如说如下的情情形: 一般情况下我们使用如下代码可以实现: .pageNav { font-size:; text- ...
- Day 1: How to install jedi/codeintel plugin for sublime on Linux
Step 1, Install sublime3 Download sublime2/3 from http://www.sublimetext.com/ $tar -jxvf sublime_tex ...
- MySQL show binglog event in 'log_name'
二进制日志文件记录的内容:记录表的更改. 二进制日志文件记录的形式:基于语句的复制.基于行的复制. 两种记录形式的优点与不足: 基于语句的复制-->它不能保证复制的正确性.如随机函数可能在两台机 ...
- linux内核升级图文攻略
Linux内核概览 Linux是一个一体化内核(monolithic kernel)系统. 设备驱动程序可以完全访问硬件. Linux内的设备驱动程序可以方便地以模块化(modularize)的形式设 ...
- RHEL6.4 NFS文件共享服务搭建
NFS文件共享服务 1 实验方案 使用2台RHEL6.4虚拟机,其中一台作为NFS共享服务器(192.168.100.1).另外一台作为测试用的NFS客户机(192.168.100.2) 2.实现 2 ...
- speex 回声消除的用法
speex 回声消除的用法 分类: speex AEC 回声消除 2012-11-13 11:24 1336人阅读 评论(0) 收藏 举报 speex的回声消息 就是speex_echo_cancel ...