主页 > 手机  > 

Python学习心得正则表达式及re模块的使用

Python学习心得正则表达式及re模块的使用
一、正则表达式定义以及正则表达式的构成:  1.什么式正则表达式: 正则表达式:是一个比较特殊的字符序列,能够帮助用户检查一个字符串是否符合某种特殊的模式。 2.正则表达式的构成: 正则表达式是由元字符和限定字符构成的,元字符用来限定匹配的对象,限定符用来限定匹配的个数。 a.元字符:具有特殊意义的专用字符。例如:^和&分别表示开始和结束。

元字符

描述说明

举例

结果

.

匹配任意字符(除\n)

'p\nytho\tn'

p、y、t、h、o、lt、n

\w

匹配字母、数字、下划线

'python\n123'

p、y、t、h、o、n、1、2、3

\W

匹配非字母、数字、下划线

'python\n123'

\n

\s

匹配任意空白字符

'python\t123'

\t

\S

匹配任意非空白字符

'python\t123'

p、y、t、h、o、n、1、2、3

\d

匹配任意十进制数

'python\t123'

1、2、3

b. 限定符:用于限定匹配的次数。

限定符

描述说明

举例

结果

?

匹配前面的字符0次或1次

colour?r

可以匹配color或colour

+

匹配前面的字符1次或多次

colour+r

可以匹配colour或colour...r

*

匹配前面的字符0次或多次

colour*r

可以匹配color或colour...r

{n}

匹配前面的字符n次

colour{2}r

可以匹配colour

{n,}

匹配前面的字符最少n次

colour{2,}r

可以匹配colour或colour...r

{n,m}

匹配前面的字符最小n次,最多m次

colour{2,4}r

可以匹配colour或colour...r  

二、正则表达式的应用: 正则表达式有了,如何对其应用,下面进行解释: 对其进行应用利用了,python中的re模块,通过调用re模块从而实现其操作。

注:python中的re内置模块,可以帮助python实现其正则表达式操作。

1.re模块中的一系列函数: 应用re模块就是对这些函数进行调用。

注:调用函数前需要对其进行说明'import re'。

函数

功能描述

re.match(pattern, string, flags=0)

用于从字符串的开始位置进行匹配,如果起始位置匹配成功,结果为Match对象,否则结果为None。

re.search(pattern, string, flags=0)

用于在整个字符串中搜索第一个匹配的值,如果匹配成功,结果为Match对象,否则结果为None。

re.findall(pattern, string, flags=0)

用于在整个字符串搜索所有符合正则表达式的值,结果是一个列表类型。

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

用于实现对字符串中指定子串的替换。

re.split(pattern, string, maxsplit, flags=0)

字符串中的split()方法功能相同,都是分隔字符串。

2.函数的调用: (1) re.match(pattern, string, flags=0)的运用: import re#导入 pattern='\d\.\d+'#+限定符,\d 0-9数字出现1次或多次 s='I study every day'#待匹配字符串 match=re.match(pattern,s,re.I) print(match)#None s2='3.11Python I study every day' match2=re.match(pattern,s2) print(match2)#<re.Match object; span=(0, 4), match='3.11'> print('匹配值的起始位置:',match2.start()) print('匹配值的结束位置:',match2.end()) print('匹配区间的位置元素:',match2.span()) print('待匹配的字符串:',match2.string) print('匹配的数据:',match2.group()) (2)re.search(pattern, string, flags=0)的运用: import re#导入 pattern='\d\.\d+'#+限定符,\d 0-9数字出现1次或多次 s='I study Python3.11 every day'#待匹配字符串 match=re.search(pattern,s,re.I) s2='4.10 Python I study every day' s3='Python I study every day' match3=re.search(pattern,s3) match2=re.search(pattern,s2) print(match) print(match2) print(match3) print(match.group()) print(match2.group()) re.findall(pattern, string, flags=0)的运用: import re#导入 pattern='\d\.\d+'#+限定符,\d 0-9数字出现1次或多次 s='I study Python3.11 and Python2.7 every day'#待匹配字符串 s2='4.10 Python I study every day' s3='Python I study every day' lst=re.findall(pattern,s) lst2=re.findall(pattern,s2) lst3=re.findall(pattern,s3) print(lst) print(lst2) print(lst3) (3)re.sub(pattern, repl, string, count, flags=0)和re.split(pattern, string, maxsplit, flags=0)的运用: import re pattern='黑客|破解|反爬|爬虫' s='我想学习Python,想破解一些VIP视频,Python可以实现无低反爬吗?' new_s=re.sub(pattern,'XXX',s) print(new_s) s2='http:// .baidu /s?wd=wjl&rsv_zpt=1' pattern2='[?|&]' lst=re.split(pattern2,s2) print(lst)

标签:

Python学习心得正则表达式及re模块的使用由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Python学习心得正则表达式及re模块的使用