zoukankan      html  css  js  c++  java
  • 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']
    
    
    
     
    
    
    
     
  • 相关阅读:
    HDU 1082 Matrix Chain Multiplication
    HDU 1086 You can Solve a Geometry Problem too
    HDU 1099 Lottery
    jquery正则检测字符串表达式的合法性
    Like语句中的注入
    HDU 1372 Knight Moves
    HDU 1253 胜利大逃亡
    HDU 1242 Rescue
    我有新博客啦
    水平越权与垂直越权
  • 原文地址:https://www.cnblogs.com/TKOPython/p/11973435.html
Copyright © 2011-2022 走看看