我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

python函数介绍 python函数的用法

一文秒懂python正则表达式常用函数

01 Re概览

10年积累的成都网站建设、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有普安免费网站建设让你可以放心的选择与我们合作。

Re模块是python的内置模块,提供了正则表达式在python中的所有用法,默认安装位置在python根目录下的Lib文件夹(如 ..\Python\Python37\Lib)。主要提供了3大类字符串操作方法:

字符查找/匹配

字符替换

字符分割

由于是面向字符串类型的模块,就不得不提到字符串编码类型。re模块中,模式串和搜索串既可以是 Unicode 字符串 (常用str类型) ,也可以是8位字节串 (bytes,2位16进制数字,例如\xe5) , 但要求二者必须是同类型字符串。

02 字符串查找/匹配

预编译:compile

在介绍查找和匹配函数前,首先需要知道re的compile函数,该函数可以将一个模式串编译成正则表达式类型,以便后续快速匹配和复用

import re pattern = re.compile(r'[a-z]{2,5}') type(pattern) #re.Pattern

此例创建了一个正则表达式式对象 (re.pattern) ,命名为pattern,用于匹配2-5位小写字母的模式串。后续在使用其他正则表达式函数时,即可使用pattern进行方法调用。

匹配:match

match函数用于从文本串的起始位置开始匹配,若匹配成功,则返回相应的匹配对象,此时可调用group()方法返回匹配结果,也可用span()方法返回匹配起止下标区间;否则返回None

import re pattern = re.compile(r'[a-z]{2,5}') text1 = 'this is a re test' res = pattern.match(text1) print(res) # if res:  print(res.group()) #this  print(res.span()) #(0, 4) text2 = '是的, this is a re test' print(pattern.match(text2))#None

match函数还有一个变形函数fullmatch,当且仅当模式串与文本串刚好全部匹配时,返回一个匹配对象,否则返回None

搜索:search

match只提供了从文本串起始位置匹配的结果,如果想从任意位置匹配,则可调用search方法,与match方法类似,当任意位置匹配成功,则立即返回一个匹配对象,也可调用span()方法获取起止区间、调用group方法获得匹配文本串

import re pattern = re.compile(r'\s[a-z]{2}') text1 = 'this is a re test' res = pattern.search(text1) print(res) # if res:  print(res.group()) #is  print(res.span()) #(4, 7) pattern2 = re.compile(r'\s[a-z]{5}') text2 = '是的,this is a re test' print(pattern2.search(text2))#None

match和search均用于匹配单个结果,唯一区别在于前者是从起始位置开始匹配,而后者从任意位置匹配,匹配成功则返回一个match对象。

全搜索:findall/finditer

几乎是最常用的正则表达式函数,用于寻找所有匹配的结果,例如在爬虫信息提取中,可非常方便地提取所有匹配字段

import re pattern = re.compile(r'\s[a-z]{2,5}') text1 = 'this is a re test' res = pattern.findall(text1) print(res) #[' is', ' re', ' test']

findall返回的是一个列表对象类型,当无匹配对象时,返回一个空列表。为了避免因同时返回大量匹配结果占用过多内存,可以调用finditer函数返回一个迭代器类型,其中每个迭代元素是一个match对象,可继续调用group和span方法获取相应结果

import re pattern = re.compile(r'\s[a-z]{2,5}') text1 = 'this is a re test' res = pattern.finditer(text1) for r in res:  print(r.group()) """  is  re  test """

当匹配模式串较为简单或者仅需单词调用时,上述所有方法也可直接调用re类函数,而无需事先编译。此时各方法的第一个参数为模式串。

import re pattern = re.compile(r'\d{2,5}') text = 'this is re test' re.findall('[a-z]+', text) #['this', 'is', 're', 'test'] 03 字符串替换/分割

替换:sub/subn

当需要对文本串进行条件替换时,可调用re.sub实现 (当然也可先编译后再用调用实例方法) ,相应参数分别为模式串、替换格式、文本串,还可以通过增加缺省参数限定替换次数和匹配模式。通过在模式串进行分组,可实现字符串的格式化替换(类似字符串的format方法),以实现特定任务。

import re text = 'today is 2020-03-05' print(re.sub('-', '', text)) #'today is 20200305' print(re.sub('-', '', text, 1)) #'today is 202003-05' print(re.sub('(\d{4})-(\d{2})-(\d{2})', r'\2/\3/\1', text)) #'today is 03/05/2020'

re.sub的一个变形方法是re.subn,区别是返回一个2元素的元组,其中第一个元素为替换结果,第二个为替换次数

import re text = 'today is 2020-03-05' print(re.subn('-', '', text)) #('today is 20200305', 2)

分割:split

还可以调用正则表达式实现字符串的特定分割,相当于.split()方法的一个加强版,实现特定模式的分割,返回一个切割后的结果列表

import re text = 'today is a re test, what do you mind?' print(re.split(',', text)) #['today is a re test', ' what do you mind?'] 04 总结

python中的re模块提供了正则表达式的常用方法,每种方法都包括类方法调用(如re.match)或模式串的实例调用(pattern.match)2种形式

常用的匹配函数:match/fullmatch

常用的搜索函数:search/findall/finditer

常用的替换函数:sub/subn

常用的切割函数:split

还有其他很多方法,但不是很常用,具体可参考官方文档

另外,python还有第三方正则表达式库regex可供选择

到此这篇关于一文秒懂python正则表达式常用函数的文章就介绍到这了,希望大家以后多多支持!

python常用函数

1、complex()

返回一个形如 a+bj 的复数,传入参数分为三种情况:

参数为空时,返回0j;参数为字符串时,将字符串表达式解释为复数形式并返回;参数为两个整数(a,b)时,返回 a+bj;参数只有一个整数 a 时,虚部 b 默认为0,函数返回 a+0j。

2、dir()

不提供参数时,返回当前本地范围内的名称列表;提供一个参数时,返回该对象包含的全部属性。

3、divmod(a,b)

a -- 代表被除数,整数或浮点数;b -- 代表除数,整数或浮点数;根据 除法运算 计算 a,b 之间的商和余数,函数返回一个元组(p,q) ,p 代表商 a//b ,q 代表余数 a%b。

4、enumerate(iterable,start=0)

iterable -- 一个可迭代对象,列表、元组序列等;start -- 计数索引值,默认初始为0‘该函数返回枚举对象是个迭代器,利用 next() 方法依次返回元素值,每个元素以元组形式存在,包含一个计数元素(起始为 start )和 iterable 中对应的元素值。

68 个 Python 内置函数详解

内置函数就是Python给你提供的,拿来直接用的函数,比如print.,input等。

截止到python版本3.6.2 ,python一共提供了68个内置函数,具体如下

本文将这68个内置函数综合整理为12大类,正在学习Python基础的读者一定不要错过,建议收藏学习!

(1)列表和元组

(2)相关内置函数

(3)字符串

frozenset 创建一个冻结的集合,冻结的集合不能进行添加和删除操作。

语法:sorted(Iterable, key=函数(排序规则), reverse=False)

语法:fiter(function. Iterable)

function: 用来筛选的函数. 在filter中会自动的把iterable中的元素传递给function. 然后根据function返回的True或者False来判断是否保留留此项数据 , Iterable: 可迭代对象

搜索公众号顶级架构师后台回复“面试”,送你一份惊喜礼包。

语法 : map(function, iterable)

可以对可迭代对象中的每一个元素进行映射. 分别去执行 function

hash : 获取到对象的哈希值(int, str, bool, tuple). hash算法:(1) 目的是唯一性 (2) dict 查找效率非常高, hash表.用空间换的时间 比较耗费内存

Python常用函数三有哪些?这7个函数使用频率最高,总算搞明白了

1.1 例如:print(hex(2))案例

1.2 输出函数:print(hex(2))

1.3 输出结果:0x2

1.4 解析说明:返回16进制的数。

2.1 例如:print(chr(10))案例

2.2 输出函数:print(chr(10))

2.3 输出结果:0o12

2.4 解析说明:返回当前整数对应的ASCll码

3.1 例如:print(ord("b"))案例

3.2 输出函数:print(ord("b"))

3.3 输出结果:98

3.4 解析说明:返回当前ASCll码的10进制数

4.1 例如:print(chr(97))

4.2 输出函数:print(chr(97))

4.3 输出结果:b

4.4 解析说明:返回当前ASCll码的10进制数。

案例一:给你一个字符串,s = 'hello kitty'

1.1 输出函数:print(s.capitalize())

1.2 输出结果:0x2

1.3 解析说明:返回16进制的数。

2.1输出函数:print(s.replace('kitty','kuang'))

2.2 输出结果:hello kuang

2.3 解析说明:替换功能,将kitty换成kuang。

2.4 输出函数:print(s.replace('4','KK'))

2.5 输出结果:12KK12KK

2.6 解析说明:所有的4都替换成KK

2.7 输出函数:print(s.replace('4','KK'))

2.8 输出结果:12KK12KK124

2.9 解析说明:将前两个的4替换成go

案例一:给你一个字符串,ip = '192.168.1.1'

3.1 输出函数:print(ip.split(','))

3.2 输出结果:['192.168.1.1']

3.3 解析说明:将字符串分割成列表

案例一:给你一个字符串,ip = '192.168.1.1'

3.3 输出函数:print(ip.split(',',2))

3.4 输出结果:['192.168.1.1']

3.5 解析说明:从第二个开始分割成列表


当前文章:python函数介绍 python函数的用法
本文链接:http://shouzuofang.com/article/dojcegs.html

其他资讯