Python中正则表达式的使用
来源:互联网 发布:ps4直播 mac 编辑:程序博客网 时间:2024/05/26 02:54
正则表达式是一种非常强大的工具,是用来对文本(字符串)的匹配,搜索的利器,一门好的语言都不可缺少这一模块,在Python中,re模块就集成了所有正则表达式的功能
关于正则表达式的语法,在这里就不赘述了,本文主要讲一些python中的实例用法:
首先,把re模块中所有的函数和方法在此列举一番:match,search,findall,split.sub,group,groups,compile
1.match(p,s)
一般是两个参数,p:正则表达式(也相当于一个字符串);s:要匹配的字符串
从头开始匹配正则表达式,从p的第一个字符开始匹配,匹配中就输出匹配到的内容,没有就返回None
import re
m = re.match('[a-z]=[0-9]','ssaa=0jinleib=1') //匹配不到
m = re.match('[a-z]=[0-9]','a=0jinleib=1') //匹配到'a=0'
2.search(p,s)
跟match的唯一区别就是,它不是从头开始匹配,
import re
m = re.search('[a-z]=[0-9]','ssaa=0jinleib=1') //匹配到'a=0',但是不会输出b=1,因为它只返回一个匹配到结果
3.group,groups
之所以把这两个函数放在这个位置,是因为你match或者search完之后,想知道自己匹配到的内容是什么,就要用到group,groups。
看上面的例子,m是返回值,它的类型是一个对象,直接输出是看不到结果的,所以就要用到m.group(),或者m.groups()。这样就会输出一个字符串
再说说group和groups的区别:只有正则表达式p中有用'()'括起来的内容,并且匹配成功,用groups才会有结果,要不然都是None,而group都可以用,只不过当正则表达式p中有用'()'括起来的内容时,group会有一个参数,是整数类型,如果是1,就输出p中第1个用'()'括起来的匹配到的内容,以此类推,类似于数组,只不过不是从0开始。
4.findall
参数,和match,search一样,不同的是它返回的是一个列表list,里面含有所有匹配到内容,下面两个例子:
>>>re.findall('car','the car is so carry the barcarid')
['car','car','car'] //匹配到所有的car
import re
m = re.findall('([a-z])=([0-9])','ssaa=0jinleib=1')
结果:[ ('a','0'), ('b','1') ] //注意,列表里面的元素已经变成元组了,而元组里面的元素分别是p中两个()括起来的内容,这里就是用()和不用()的区别
5.split
参数还是一样,一个p,一个s。但是要注意一点的是,千万不要和字符串的内建函数(也叫)split混淆!
相信大家对字符串的split函数很熟悉:s='jinlei' s.split('l',s) = [ 'jin', 'ei' ]
这个split的功能是根据正则表达式所能匹配的字符串来分割字符串:
str = ' 1.7 2.3 4 123'
alist = re.split(r'\s+',str)
print alist //猜猜结果是什么?没错[ '','1.7','2.3','4','123' ]。\s表示空格符,以一个或者多个空格为分隔符分割字符串str。
6.sub(p,rep_s,s)
功能:用替代字符串rep_s代替用正则表达式p在目标字符串s上匹配到的内容。
>>>re.sub('X','me','is X')
'is me' //输出结果
7.compile(p)
一般只是一个参数,它的功能就是编译正则表达式p,它返回一个regex对象
reg = re.compile('d')
reg.match('sd') //没有匹配到
reg.match('d') //匹配到d,
返回结果和上面直接用match函数一样,是一个对象,或者None。
好了,有了这些,只要你清楚正则表达式的基本语法,以及在python中一些特殊字符,多加练习,python的正则表达式就能手到擒来啦!!
- Python中正则表达式的使用
- Python 中正则表达式的使用浅析
- Python中正则表达式的使用
- Python中正则表达式的使用
- Python中使用正则表达式
- Python中使用正则表达式
- python中使用 正则表达式
- Python中使用正则表达式
- Python中使用正则表达式
- Python中使用正则表达式
- Python正则表达式的使用
- python 正则表达式的使用
- Python正则表达式的使用
- 在Python中使用正则表达式的一些体会
- c#中使用python语法的正则表达式.
- python中正则表达式以及re模块的使用
- python中正则表达式库re的使用(regex)
- python中re.sub的使用 正则表达式
- JS 解析map 格式JSON super.makeJSONObject(req, res, map);
- 杭电1056——HangOver(水题)
- 简易输出Huffman编码
- cocoa pods
- 基于逻辑性记忆vim常用操作
- Python中正则表达式的使用
- PAT 1035. 插入与归并(25) 第二测试点不通过
- [改]AngularJS入门教程00:引导程序
- Java中的事务处理
- JavaSwing 表格JTable内容居中 自定义TableModel
- 【Yoshua Bengio 亲自解答】机器学习 81 个问题及答案(最全收录)
- Python-练习 洗牌
- 为什么要跳槽
- VS2010旗舰版+OpenCV2.2.0配置过程及测试程序