#210317_正则表达式
#正则表达式,其实就是从一段字符串中提取出需要的字符
import re #加载正则表达式模块
#re.findall(参数1,参数2,参数3) 参数1表示用什么规则进行提取,参数2表示从哪个字符串进行提取
#参数3一般有re.I 表示不区分大小写,re.S 匹配多行中满足条件的值
str1='abcadefg'
#. 通配符,匹配某个字符前面或后面的一个字符
print(re.findall('a.',str1)) #提取a后面的一个字符,返回值是列表,包括条件a也返回
print(re.findall('a(.)',str1)) #提取a后面的一个字符,返回值是列表,不包括条件a
#* 通配符,匹配某个字符后面的若干个字符,若干也包括0个的情况
str1_1='abcdabbcbbbbeafg'
print(re.findall('ab*',str1_1)) #把所有a后面有若干个b的字符找出来,包括0个b的情况
#? 通配符,匹配某个字符串后面有0-1个字符
str1_2='abacabbbbbd'
print(re.findall('ab?',str1_2))
#+ 通配符,匹配某个字符串后面有一个或多个字符,不包括0个的情况
print(re.findall('ab+',str1_2))
#.*? 提取字符串两端之间的内容 A(.*?)B
load1='一二三四五六七八九'
print(re.findall('三(.*?)六',load1))
print(re.findall('三.*?六',load1))
#如果只有一端给出了条件,值会怎么取?
print(re.findall('三(.*?)',load1)) #懒惰匹配,在符合查询要求的情况下,尽可能少的匹配
print(re.findall('(.*?)六',load1)) #需要匹配的字符串后面是'六',无法偷懒
#只给出一端的条件时,如果希望获取后面全部的结果,则应当使用贪婪匹配
print(re.findall('三(.*)六',load1)) #贪婪匹配
#当有多个满足条件的值时,两者的结果并不相同
load1='一二六三四五六三七八九六'
print(re.findall('三(.*?)六',load1)) #懒惰匹配
print(re.findall('三(.*)六',load1)) #贪婪匹配
#如果没有满足条件的查询,返回空列表
print(re.findall('九(.*?)一',load1)) #懒惰匹配
print(re.findall('九(.*)一',load1)) #贪婪匹配
#\w{n} 匹配字母,数字,下划线,n表示连续满足条件的位数
str3='nyrbt'
print(re.findall('\w{3}',str3))
#\W 匹配\w的补集
str3_new='ny#$%rbt'
print(re.findall('\W{3}',str3_new))
#\s 匹配空格,换行符\n,制表符\t
str6='''小娃撑小艇,
偷采白莲 回.
不解藏踪 迹,
浮萍一道 开
'''
print(re.findall('\s',str6))
#\S \s的补集
print(re.findall('\S',str6))
#^匹配开头,$匹配结尾
list1=['abcde','deabc','fabcf']
for one in list1:
if re.findall('^abc',one): #匹配以abc开头的字符串
print(one,'以abc开头')
elif re.findall('abc$',one): #匹配以abc结尾的字符串
print(one,'以abc结尾')
#re.I 不区分大小写
req='AbcabcABcaBCabCABC'
print(re.findall('abc',req,re.I))
#re.S 匹配多行中符合条件的值
req2='''hellounyrbtyutnhbgumynhbg
,imyuntbuimyuntybr
68,imyuntybrytnuymi,oumworld'''
print(re.findall('hello(.*?)world',req2,re.S))
#课堂小结
#正则表达式的通配符 . * ? +
#加()和不加()的区别
#.*? 懒惰匹配 .* 贪婪匹配
#\w,\s
#re.I,re.S
if __name__ == '__main__':
pass
正则匹配的常用的通配符
最新推荐文章于 2024-05-26 08:41:12 发布
本文详细介绍了Python中的正则表达式,包括基本的通配符如`.`、`*`、`?`、`+`,以及特殊符号如`w`、`s`、`W`。通过实例展示了如何使用`re`模块进行字符串匹配、查找和提取。还讨论了`^`和`$`在匹配字符串开头和结尾的作用,以及`re.I`和`re.S`两个标志的作用。文章最后总结了正则表达式的常用通配符和匹配模式。
摘要由CSDN通过智能技术生成