Python 3.6 re模块基本函数介绍

python里提供了两种对正则表达式的操作:match和serch

1.match

函数原型:re.match(pattern, string, flags)

pattern为正则表达式,string为被匹配的文本,flags是匹配规则,如是否区别大小写等,若匹配到返回match object,若无,返回None


import re
data="oiudasmiasdiuthjdks79854.,;'34687132asd4f "
result=re.match('asd',data)
print(result.group(0))
运行结果:

2.search

函数原型:re.search(pattern, string, flags)

含义同上

import re
data="oiudasmiasdiuthjdks79854.,;'346871325asd4f "
result=re.search('asd',data)
print(result.group(0))
运行结果:


match 和 search的区别:match从字符串的开始位置开始匹配,若开始部分不匹配,则返回None,search则匹配整个字符串,只要字符串有符合表达式规则的就返回一个match object。

3.findall

函数原型:findall(pattern, string, flags=0)

pattern为正则表达式,string为被匹配的文本,flag为替换规则,如是否区分大小写。若匹配到一个及以上的结果返回一个list。

import re
data="oiudasmiasdiuthjdks79854.,;'346871325asd4f "
result=re.findall('asd',data)
print(result)
运行结果:


4.finditer

函数原型:finditer(pattern, string, flags=0)意义同上,只不过返回的是一个迭代器

import re
data="oiudasmiasdiuthjdks79854.,;'346871325asd4f "
result=re.finditer('asd',data)
print(result)
for x in result:
    print(x.group())
运行结果:

5.re.subn与re.sub

函数原型:subn(pattern, repl, string, count=0, flags=0)

    sub(pattern, repl, string, count=0, flags=0)

pattern为正则表达式,repl为替换的文本,string是被匹配的文本,count是替换次数,缺省为0,表示全部替换,flag是匹配规则,如是否区别大小写等,可省略。

subn返回的结果是一个元组(替换后的字符串,替换次数)。

sub仅返回替换后的字符串。

不区分大小写把首次匹配到的‘asd'文本替换为'jojo'

import re
data="oiudasmiAsdiuthjdks79854.,;'346871325asd4f "
result=re.subn('asd','jojo',data,count=1,flags=2)
print(result)
运行结果:

6.re.spilt

函数原型:split(pattern, string, maxsplit=0, flags=0)

pattern为正则表达式,string是被匹配的文本,maxspilt为分割次数,缺省下为0,flag为匹配规则。返回的是分割后的字串组成的元组

import re
data="oiudasmiasdiuthjdks79854.,;'346871325asd4f "
result=re.split('asd',data)
print(result)
运行结果:


7.escape

函数原型:escape(pattern)

把pattern里的除数字字母外所有的字符前加一个斜杠

import re
data="oiudasmiasdiuthjdks79854.,;'346871325asd4f "
result=re.escape('asd.;/.,')
print(result)
运行结果:

8.match object

属性:string :传入的文本

    pos 和 endpos:开始的索引和结束的索引,索引默认以0开始

    lastgroup:最后匹配到分组的名称,若该分组没有别名或者没有捕获,则为None

    lastindex:最后匹配到分组的索引

import re
data="oiudasmiasdiuthjdks79854.,;'346871325asd4f "
result=re.search('asd',data)
print(result.string)
print(result.pos)
print(result.endpos)
print(result.lastgroup)
print(result.lastindex)

运行结果


方法:

group():返回捕获的子串

start(),end():返回字串在原字符串开始/结束的索引

span():返回(start(),end())

expand(template):将匹配到的模版在template中展开

import re
data="oiudasmiasdiuthjdks79854.,;'346871325asd4f "
result=re.search('asd',data)
print(result.start())
print(result.end())
print(result.span())
print(result.expand('result is \g<0>'))

运行结果:



  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值