热门IT资讯网

python正则表达式-1day

发表于:2024-11-28 作者:热门IT资讯网编辑
编辑最后更新 2024年11月28日,#day-1'''author:hello-pythondate:2019.1.14goal:正则表达式'''import re#1)line = 'Helllopython'#^H 表示匹配以w开头
#day-1'''author:hello-pythondate:2019.1.14goal:正则表达式'''import re#1)line = 'Helllopython'#^H 表示匹配以w开头的字符串,只匹配一次;#.表示该字符可为任意字符,只匹配一次;#* 表示前面的字符可以出现任意次,至少0次,多次匹配;reg_str1 = '^H.*'#re.match 函数#第一个参数是匹配的格式;#第二个参数是匹配字符串;#返回值为:匹配成功,返回match对象,是否返回:noneif re.match(reg_str1,line):    print("匹配成功了~")   #reg_str1 = '^w.*'  匹配成功else:    print("匹配失败咩")    #reg_str1 = '^w.*'  匹配失败#返回:匹配成功~#2)#12$表示匹配以23结尾的字符串,匹配一次;line2 = 'Helllopython'reg_str2 = '^H.*n$'if re.match(reg_str2,line2):    print("匹配成功~")else:    print("匹配失败咩~")#返回:匹配成功~#3)line3 = 'hellopythonzuiku'#() 内为匹配模式,通过group函数可以取出匹配的结果;#正则表达式贪婪模式:从左边开始匹配;reg_str3 = '.*(o.*o).*'test01 = re.match(reg_str3,line3)if test01:    print(test01.group(1))    else:    print("匹配失败咩~!")   #返回结果opytho#4)#知识点:正则表达式的贪婪与非贪婪匹配#如:String str="abcxbc";#    Patter p="ab.*c";#贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。#如上面使用模式p匹配字符串str,结果就是匹配到:abcxbc(ab.*c)。#非贪婪匹配:就是匹配到结果就好,就少的匹配字符。#如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab.*c)。#编程中如何区分两种模式#  默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。# 量词:{m,n}:m到n个#    *:任意多个#   +:一个到多个#   ?:0或一个#了解了贪婪模式和非贪婪模式后继续reg_str03 = '.*?(h.*o).*'    #半贪婪模式    reg_str04 = '.*?(h.*?o).*'    #非贪婪模式  test01 = re.match(reg_str03,line3)test02 = re.match(reg_str04,line3)if test01 and test02:   print(test01.group(1))   print(test02.group(1))else:    print("匹配失败!!!!")#返回 匹配失败!

匹配结果:
hellopytho
hello

可以了理解 贪婪模式匹配的字符多,非贪婪模式匹配的字符少;

0