Python模块学习 re 正则表达式


Posted in Python onMay 19, 2011

re.match

re.match 尝试从字符串的开始匹配一个模式,如:下面的例子匹配第一个单词。

import re 
text = "JGood is a handsome boy, he is cool, clever, and so on..." 
m = re.match(r"(\w+)\s", text) 
if m: 
print m.group(0), '\n', m.group(1) 
else: 
print 'not match'

re.match的函数原型为:re.match(pattern, string, flags)
第一个参数是正则表达式,这里为"(\w+)\s",如果匹配成功,则返回一个Match,否则返回一个None;
第二个参数表示要匹配的字符串;
第三个参数是标致位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
re.search

re.search函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回,如果字符串没有匹配,则返回None。

import re 
text = "JGood is a handsome boy, he is cool, clever, and so on..." 
m = re.search(r'\shan(ds)ome\s', text) 
if m: 
print m.group(0), m.group(1) 
else: 
print 'not search'

re.search的函数原型为: re.search(pattern, string, flags)
每个参数的含意与re.match一样。
re.match与re.search的区别:re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。
re.sub

re.sub用于替换字符串中的匹配项。下面一个例子将字符串中的空格 ' ' 替换成 '-' :

import re 
text = "JGood is a handsome boy, he is cool, clever, and so on..." 
print re.sub(r'\s+', '-', text)

re.sub的函数原型为:re.sub(pattern, repl, string, count)
其中第二个函数是替换后的字符串;本例中为'-'
第四个参数指替换个数。默认为0,表示每个匹配项都替换。
re.sub还允许使用函数对匹配项的替换进行复杂的处理。如:re.sub(r'\s', lambda m: '[' + m.group(0) + ']', text, 0);将字符串中的空格' '替换为'[ ]'。
re.split

可以使用re.split来分割字符串,如:re.split(r'\s+', text);将字符串按空格分割成一个单词列表。
re.findall

re.findall可以获取字符串中所有匹配的字符串。如:re.findall(r'\w*oo\w*', text);获取字符串中,包含'oo'的所有单词。
re.compile

可以把正则表达式编译成一个正则表达式对象。可以把那些经常使用的正则表达式编译成正则表达式对象,这样可以提高一定的效率。下面是一个正则表达式对象的一个例子:

import re 
text = "JGood is a handsome boy, he is cool, clever, and so on..." 
regex = re.compile(r'\w*oo\w*') 
print regex.findall(text) #查找所有包含'oo'的单词 
print regex.sub(lambda m: '[' + m.group(0) + ']', text) #将字符串中含有'oo'的单词用[]括起来。

更详细的内容,可以参考Python手册。
Python 相关文章推荐
python操作摄像头截图实现远程监控的例子
Mar 25 Python
Python实现全角半角字符互转的方法
Nov 28 Python
Django中login_required装饰器的深入介绍
Nov 24 Python
python删除某个字符
Mar 19 Python
python 反向输出字符串的方法
Jul 16 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
Oct 14 Python
使用python将excel数据导入数据库过程详解
Aug 27 Python
Python 实现递归法解决迷宫问题的示例代码
Jan 12 Python
tensorflow保持每次训练结果一致的简单实现
Feb 17 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
May 25 Python
python为什么要安装到c盘
Jul 20 Python
Pycharm调试程序技巧小结
Aug 08 Python
PYTHON正则表达式 re模块使用说明
May 19 #Python
python 随机数生成的代码的详细分析
May 15 #Python
python 生成不重复的随机数的代码
May 15 #Python
精确查找PHP WEBSHELL木马的方法(1)
Apr 12 #Python
Python中删除文件的程序代码
Mar 13 #Python
python 中文乱码问题深入分析
Mar 13 #Python
学习python处理python编码问题
Mar 13 #Python
You might like
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
php中in_array函数用法分析
2014/11/15 PHP
分享ThinkPHP3.2中关联查询解决思路
2015/09/20 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
分享XmlHttpRequest调用Webservice的一点心得
2012/07/20 Javascript
原生JS获取元素的位置与尺寸实现方法
2017/10/18 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
使用Angular 6创建各种动画效果的方法
2018/10/10 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
JSONP解决JS跨域问题的实现
2020/05/25 Javascript
JavaScript闭包原理与用法学习笔记
2020/05/29 Javascript
python冒泡排序算法的实现代码
2013/11/21 Python
Python中线程编程之threading模块的使用详解
2015/06/23 Python
python生成excel的实例代码
2017/11/08 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
2019/06/26 Python
Python 多线程,threading模块,创建子线程的两种方式示例
2019/09/29 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
详谈tensorflow gfile文件的用法
2020/02/05 Python
Python如何合并多个字典或映射
2020/07/24 Python
python获取linux系统信息的三种方法
2020/10/14 Python
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
中粮集团旗下食品网上购物网站:我买网
2016/09/22 全球购物
美体小铺英国官网:The Body Shop英国
2017/01/24 全球购物
南非最大的在线时尚商店:Zando
2019/07/21 全球购物
浅谈react路由传参的几种方式
2021/03/23 Javascript
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
《海伦?凯勒》教学反思
2014/04/17 职场文书
餐饮商业计划书范文
2014/04/29 职场文书
我们的节日清明节活动总结
2014/04/30 职场文书
博士生导师推荐信
2014/07/08 职场文书
自习课吵闹检讨书范文
2014/09/26 职场文书
员工试用期转正自我评价
2015/03/10 职场文书
2015年财务个人工作总结范文
2015/05/22 职场文书
运动会100米广播稿
2015/08/19 职场文书
Java实战之课程信息管理系统的实现
2022/04/01 Java/Android