Python 3.6 re模块基本函数介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/github_38196368/article/details/70456082

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>'))

运行结果:



阅读更多

没有更多推荐了,返回首页