广州盘点口碑优质的人工智能课程培训机构出炉名单榜首一览

IT培训选达内,21年专业IT培训机构,美国上市集团。开设IT培训班Java、python、大数据、linux、UI、会计等IT培训,泛IT培训和非IT培训共2课程、室内设计师、PHP工程师、平面++工程师、SEM竞价师、SEO优化师、社会化媒体运营师、电商运营师等课程为一体的IT培训机构。以下5家IT培训培训机构均已经受过学生的考验,不分前后,值得推荐!

1.广州达内教育

2.广州博为峰教育

3.广州中公教育优就业

4.广州CDA数据分析师分院

5.广州北大青鸟

6.广州信盈达

7.广州千锋教育

8.广州传智教育

9.广州黑马程序员

10.广州斯坦星球

Python正则表达式是简介表达一组字符串的表达式,正则表达式可以方便的检查一个字符串是否与某种模式匹配。本文将结合实例给大家讲解六种在正则表达式中的常见函数,分别是re.match、re.search、re.findall、re.compile、re.split和re.sub。

re.match() tch函数从头开始匹配,如果不是起始位置匹配成功的话,match函数的匹配结果就为none。

re.search() 整个字符串,并返回个成功的匹配

re.findall() 整个字符串,返回一个list(较常用的)

re.compile() #compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象

re.split() #将一个字符串按照正则表达式匹配的结果进行分割,返回列表类型

re.sub() #在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串

1、re.match函数

match函数从头开始匹配,如果不是起始位置匹配成功的话,match函数的匹配结果就为none。匹配成功,re.match方法返回一个匹配的对象。

语法如下:re.match(pattern, string, flags=0)

pattern:需要匹配的正则表达式;

string:在那个字符串中就行匹配 ;

flags:标志位(默认为0),它可以控制正则表达式的匹配方式

常见的flags如下:

re.I 忽略匹配时的大小写

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

re.S . 默认不匹配换行,使 . 匹配包括换行在内的所有字符

re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B

示例如下:

我们可以看出,match函数匹配成功的话,re.match方法返回一个匹配的对象,而不是匹配的正则表达式;通过span()可以获取匹配的位置。

>>> import re

>>> astr='11you are 3344 my apple\n 11开心果,you\n66a77'

>>> re.match('11',astr)

<_sre.sre_match span="(0," match="11">

>>> re.match('11',astr).span()

(0, 2)

>>> print(re.match('you',astr))

None

2、re.search函数

搜索整个字符串,并返回个成功的匹配。

语法如下:re.search(pattern, string, flags=0)

pattern:需要匹配的正则表达式;

string:在那个字符串中就行匹配 ;

flags:标志位(默认为0),它可以控制正则表达式的匹配方式

常见的flags如下:

re.I 忽略匹配时的大小写

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

re.S . 默认不匹配换行,使 . 匹配包括换行在内的所有字符

re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B

示例如下:

我们可以看出,search函数匹配成功的话,re.search方法返回一个匹配的对象,而不是匹配的正则表达式;通过span()可以获取匹配的位置。如果没有匹配到,则返回为None。

>>> import re

>>> astr='11you are 3344 my apple\n 11开心果,you\n66a77'

>>> re.search('11',astr)

<_sre.sre_match span="(0," match="11">

>>> re.search('you',astr)

<_sre.sre_match span="(2," match="you">

>>> re.search('you',astr).span() #通过span()获取匹配的位置

(2, 5)

>>> re.search('11',astr).span()

(0, 2)

>>> print(re.search('22',astr))

None

3、re.findall函数

搜索整个字符串,返回一个list

语法如下:re.findall(string)

>>> import re

>>> astr='1you are 3344 my apple\n 11开心果,you\n66a77'

>>> re.findall('\d\d',astr) #列表形式显示所有的两个数字

['33', '44', '11', '66', '77']

>>> re.findall('\d{2,4}',astr) #列表形式显示所有的2——4个数字,默认贪婪匹配

['3344', '11', '66', '77']

>>> re.findall('\d+',astr) #(1,无穷)

['1', '3344', '11', '66', '77']

>>> re.findall('\d*',astr) #(0,无穷)

['1', '', '', '', '', '', '', '', '', '3344', '', '', '', '', '', '', '', '', '', '', '', '11', '', '', '', '', '', '', '', '', '66', '', '77', '']

>>> re.findall('\d?',astr) #匹配0或1

['1', '', '', '', '', '', '', '', '', '3', '3', '4', '4', '', '', '', '', '', '', '', '', '', '', '', '1', '1', '', '', '', '', '', '', '', '', '6', '6', '', '7', '7', '']

>>> re.findall('\d{2,3}?',astr) #一个模式后跟?,不贪婪匹配,范围后面?,有两次就先取两次

['33', '44', '11', '66', '77']

>>> re.findall('\d.\d',astr) #匹配两个数字与中间任意字符

['334', '6a7']

>>> re.findall('^\d',astr) #以数字开头

['1']

>>> re.findall('^\d',astr,re.M) #多行匹配

['1', '6']

>>> re.findall('\d$',astr) #以数字结尾

['7']

>>> re.findall('\d$',astr,re.M) #多行匹配,影响^和$

['7']

>>> re.findall('\d(.)(\d)',astr,re.S)#列表形式返回,每项为一个元组

[('3', '4'), ('a', '7')]

4、re.compile函数

compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象。

语法如下:re.compile(pattern,flags=0)

pattern:需要匹配的正则表达式;

flags:标志位(默认为0),它可以控制正则表达式的匹配方式

常见的flags如下:

re.I 忽略匹配时的大小写

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

re.S . 默认不匹配换行,使 . 匹配包括换行在内的所有字符

re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B

示例如下:

>>> import re

>>> astr='AS12as34er567q!"3456'

>>> m1=re.compile(r'\d\d') #编译

>>> m1.search(astr).group() #匹配

'12'

>>> m1.findall(astr)

['12', '34', '56', '34', '56']

>>> m2=re.compile(r'a',re.I) #编译

>>> m2.findall(astr) #匹配

['A', 'a']

5、re.split函数

将一个字符串按照正则表达式匹配的结果进行分割,返回列表类型。

语法如下:re.split(pattern, string ,?maxsplit=0?,flags=0)

pattern:需要匹配的正则表达式;

string:在那个字符串中就行匹配 ;

maxsplit:分隔次数,maxsplit=1 分隔一次,默认为 0,不限制次数。

flags:标志位(默认为0),它可以控制正则表达式的匹配方式。

常见的flags如下:

re.I 忽略匹配时的大小写

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

re.S . 默认不匹配换行,使 . 匹配包括换行在内的所有字符

re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B

示例如下:

>>> import re

>>> astr='AS12as34er567q!"3456'

>>> astr.split('12') #通过12进行分割

['AS', 'as34er567q!"3456']

>>> re.split("\d{2}",astr) #通过两个数字进行分割

['AS', 'as', 'er', '7q!"', '', '']

>>> re.split("\d+",astr) #通过数字进行分割

['AS', 'as', 'er', 'q!"', '']

>>> m3=re.compile(r'\d+') #与上面等价,运用了compile函数

>>> m3.split(astr)

['AS', 'as', 'er', 'q!"', '']

>>> m3.split(astr,3) #指定分割几次

['AS', 'as', 'er', 'q!"3456']

6、re.sub函数

在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串。

语法如下:re.sub(pattern, repl, string, count=0,flags=0)

pattern:需要匹配的正则表达式;

repl : 替换的字符串,也可为一个函数。

string:在那个字符串中就行匹配 ;

count : 模式匹配后替换的较大次数,默认 0 表示替换所有的匹配。

flags:标志位(默认为0),它可以控制正则表达式的匹配方式

常见的flags如下:

re.I 忽略匹配时的大小写

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

re.S . 默认不匹配换行,使 . 匹配包括换行在内的所有字符

re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B

示例如下:

>>> import re

>>> astr='AS12as34er567q!"3456'

>>> re.sub("5",'9',astr) #将5替换为9

'AS12as34er967q!"3496'

>>> m4=re.compile(r"\d+")

>>> m4.sub(' ',astr) #将数字替换为空字符串

'AS as er q!" '

>>> m4.sub(' ',astr,2) #指定替换几次

'AS as er567q!"3456'

以上就是Pthon正则表达式六种函数实例讲解,大家都懂了吗?如果对Python正则表达式还有任何疑问,可以上达内报名Python的课程,相信一定能解决大家关于学习Python的疑问。

领取试听课
每天限量名额,先到先得
温馨提示:为不影响您的学业,来 广州python培训 校区前请先电话或QQ咨询,方便我校安排相关的专业老师为您解答
  • 详情请进入 广州达内软件测试培训...

关于我们 | 招生信息 | 新闻中心 | 学校动态

版权所有:搜学搜课(www.soxsok.com)