python中re模块的函数_Python中re模块的简介与相关函数

import re

#pip 包管理模块

'''

1:re.match函数

原型:match(pattern, string, flags=0)

参数:pattern:匹配的正则表达式,string:要匹配的字符串,flages:标志位,用于控制正则表达式的匹配方式

flags的值如下:

(常)re.I(忽略大小写)

re.L(做本地化识别)

(常)re.M(多行匹配,影响^和$)

(常)re.S(时.匹配包括换行符在内的所有字符)

re.U(根据Unicode字符集字符,影响\w,\W,\b,\B)

re.X(使我们以更灵活的格式理解正则表达式))

功能:尝试从字符串的起始位置匹配一个模式,如果不是起始位置(从字符串0索引开始)匹配成功的话,返回None

即:匹配的模式必须在字符串的开头

#www.baidu.com

#扫描整个字符串,返回从起始位置成功的匹配

print(re.match('www','www.baidu.com'))#能找到,返回一个对象,和www在的索引

print(re.match('www','ww.baidu.com'))#不能找到返回None

print(re.match('www','baidu.wwwcom'))#不能找到返回None

'''

'''

2:re.search函数

原型:search(pattern, string, flags=0)

参数:pattern:匹配的正则表达式,string:要匹配的字符串,flages:标志位,用于控制正则表达式的匹配方式

flags的值如下:

(常)re.I(忽略大小写)

re.L(做本地化识别)

(常)re.M(多行匹配,影响^和$)

(常)re.S(时.匹配包括换行符在内的所有字符)

re.U(根据Unicode字符集字符,影响\w,\W,\b,\B)

re.X(使我们以更灵活的格式理解正则表达式))

功能:扫描整个字符串,并返回第一个成功的匹配

print(re.search('www','baidu.wwwcom'))##能找到,返回一个对象,和www在的索引

'''

'''

re.findall函数

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

参数:pattern:匹配的正则表达式,string:要匹配的字符串,flages:标志位,用于控制正则表达式的匹配方式

flags的值如下:

(常)re.I(忽略大小写)

re.L(做本地化识别)

(常)re.M(多行匹配,影响^和$)

(常)re.S(时.匹配包括换行符在内的所有字符)

re.U(根据Unicode字符集字符,影响\w,\W,\b,\B)

re.X(使我们以更灵活的格式理解正则表达式))

功能:扫描整个字符串,并返回结果列表(可以匹配多个数据)

print(re.findall('www','www.baidu.www.com'))

'''

import re

re.subn

'''

'''

'''

1:字符串切割

str1='sunck is a good man'

print(str1.strip(' '))

print(re.split(r' +',str1))

2:字符串的替换和修改

re.sub()

re.sunb()

'''

'''

'''

'''

1:re.finditer函数

原型:finditer(pattern, string, flags=0)

参数:pattern:匹配的正则表达式,string:要匹配的字符串,flages:标志位,用于控制正则表达式的匹配方式

flags的值如下:

(常)re.I(忽略大小写)

re.L(做本地化识别)

(常)re.M(多行匹配,影响^和$)

(常)re.S(时.匹配包括换行符在内的所有字符)

re.U(根据Unicode字符集字符,影响\w,\W,\b,\B)

re.X(使我们以更灵活的格式理解正则表达式))

功能:于findall类似,扫描整个字符串,返回的是一个迭代器

2:re.sub函数和re.subn函数

原型:sub(pattern, repl, string, count=0, flags=0)

:subn(pattern, repl, string, count=0, flags=0)

参数:pattern:匹配的正则表达式,repl:指定的要替换的字符串,string:目标字符串,count:最大替换次数,flages:标志位,用于控制正则表达式的匹配方式

flags的值如下:

(常)re.I(忽略大小写)

re.L(做本地化识别)

(常)re.M(多行匹配,影响^和$)

(常)re.S(时.匹配包括换行符在内的所有字符)

re.U(根据Unicode字符集字符,影响\w,\W,\b,\B)

re.X(使我们以更灵活的格式理解正则表达式))

功能:在目标字符串中以正则表达式的规则匹配字符串,在把他们替换成指定字符串,可以指定替换次数,如果不指定,就会替换匹配到的所有的字符串

区别:sub返回一个被替换的字符串

subn返回一个元组,第一个元素是被替换的字符串,第二个元素表示被替换的次数

分组:

概念:除了简单的判断是否匹配之外

正则表达式还有提前子串的功能,用()表示的就是提取分组

str='010-53247654'

m=re.match(r'(?P\d{3})-(\d{8})',str)

#使用序号获取对应组的信息,group(0)一直代表的原始字符串

#?P写在组中给组起名

print(m.group(0))

print(m.group(1))

print(m.group(2))

#查看匹配的各组情况

print(m.groups())

编译:

概念:当我们使用正则表达式时,re模块会干两件事

1:编译正则表达式,如果正则表达式本身不合法,会报错

2:用编译后的正则表达式去匹配对象

编译函数:

re.compile函数

原型:compile(pattern, flags=0)

参数:pattern:要编译的正则表达式

flages:标志位,用于控制正则表达式的匹配方式

flags的值如下:

(常)re.I(忽略大小写)

re.L(做本地化识别)

(常)re.M(多行匹配,影响^和$)

(常)re.S(时.匹配包括换行符在内的所有字符)

re.U(根据Unicode字符集字符,影响\w,\W,\b,\B)

re.X(使我们以更灵活的格式理解正则表达式))

功能:

#编译成正则对象,编译完后都可以通过编译对象(re对象)来调用match,search等re函数

pat=r'^1(([3578]\d)|(47)\d{8}$'

re_telephone=re.compile(pat)

#编译完后的运用,相当于调用re函数时少了正则表达式的输入

re_telephone.match(str)

'''

re.compile()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值