re模块

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']


 


 
原文地址:https://www.cnblogs.com/TKOPython/p/11973435.html