import re print(re.findall("ab","dabdabf")) #普通字符和自身匹配 #--------------------------------------------------------------------- #元字符 #. 表示一个字母 print(re.findall("ab.","dabcdabvabt")) #只能匹配连接ab加后面的一位 print(re.findall(".","dabcdabvabt")) #当只有一个点时就是可以匹配所有的字符串内容 print(re.findall(".b","dabcdabvabt")) #只能匹配连接加前面的一位 print(re.findall("b...b","dabcdabvabt")) #每个.表示任意一个字母,有两个b中间三个字母的都能匹配 #--------------------------------------------------------------------- #^ 表示只能匹配开头,后面的不匹配 print(re.findall("^ab","abfdsfab")) #只能匹配开头的 print(re.findall("^a.f","abfdsfab")) #匹配开头a.f print(re.findall("ab^","abfdsfab")) #不能匹配,^只能放在最前面 #--------------------------------------------------------------------- #$只能匹配结尾,前面的不匹配 print(re.findall("ab$","abfdsfab")) #只能匹配最后面一个 print(re.findall("$ab","abfdsfab")) #不能匹配,$只能放最后 print(re.findall("ab.$","abfdsfab")) #匹配不到,因为后面还有一个.还差一个字母 print(re.findall("ab.$","abfdsfabf")) #能匹配到 print(re.findall("^ab.$","abfdsfabt")) #元字符^和$不能一起用,一个是最前面匹配,一个是最后匹配 #--------------------------------------------------------------------- # + 表示贪婪匹配[1,+00],可以匹配+前面的连续相同的字母 print(re.findall("a+","dfagdfgfd")) #只能匹配所有连一起的a print(re.findall("a.+","dfammmmmm")) # 对.有无穷大的匹配 print(re.findall("afb+","abfdbdafbbbbfdbafbds")) #匹配所有afb和afb+ print(re.findall("^afb+","afbbbbbfdbdafbbbbafbbb")) #匹配最前面的 print(re.findall("afb+$","afbbbbbfdbdafbbbbafbbb")) #匹配最后面的 #--------------------------------------------------------------------- # * 贪婪匹配[0,+00] 可以匹配*前面的所有,也能单个匹配所有 print(re.findall("ab*","fababbbfdfabfgabvghfbga")) #能匹配所有a和ab,以及ab连续b的匹配,不能单独匹配b print(re.findall("ab*","fggabaa")) #能匹配所有a和所有b以及ab print(re.findall("^ab*","abbbdffdabbbbbbbb")) #只能匹配最前面的 print(re.findall("ab*$","abbbdffdabbbbbbbb")) #只能匹配最后面的 print(re.findall("a.b*","gafbbbfdsfabbbanbgghahhacdb")) #能匹配所有的a.b,和a.但是不能单独匹配b
#--------------------------------------------------------------------- # ?[0,1] 只能匹配0到一个 ,和其他元字符在一起用会成惰性匹配 print(re.findall("ab?","acabbbgabbgabfahb")) #能匹配所有的a或者ab print(re.findall("abb?","acabbbgabbgabfahb")) #能匹配所有的ab或者abb print(re.findall("ab.?","acabbbgabbgabfahb")) #只能匹配所有ab.三位的字母 print(re.findall("ab+?","acabbbgabbgabfahb")) #只能匹配ab print(re.findall("ab.+","acabbbgabbgabfahb")) #匹配所有ab后面的字母 print(re.findall("ab.+?","acabbbgabbgabfahb")) #只能匹配所有ab.三位的字母
#--------------------------------------------------------------------- print(re.findall("ab{1}","acabbbgabbgabfahb")) #匹配ab print(re.findall("ab{2}","acabbbgabbgabfahb")) #匹配abb print(re.findall("ab{3}","acabbbbgabbgabfahb")) #匹配abbb print(re.findall("ab{1,3}","acabbbgabbgabfahb"))#能匹配ab,abb,abbb。 ['abbb', 'abb', 'ab'] print(re.findall("ab{1,3}?","acabbbgabbgabfahb")) #只能匹配ab print(re.findall("ab{1,3}.+","acabbbgabbgabfahb")) #能匹配ab后面所有字母 print(re.findall("ab{1,3}.+?","acabbbgabbgabfahb")) #['abbbg', 'abbg', 'abf'] print(re.findall("ab{1,3}.*","acabbbgabbgabfahb")) #能匹配ab后面所有字母 print(re.findall("ab{1,3}.*?","acabbbgabbgabfahb")) #['abbb', 'abb', 'ab']