• 正则表达式


    # #__author__:Administrator}
    # #data: 2017/12/16
    #
    # import re
    #
    # # m = re.findall('ww{2}l','hellow world')
    # # print(m)
    #
    # # rel = re.findall('xuxu','2222222222xuxu11111222')
    # # print(rel)
    #
    # #元字符
    #
    # #1.通配符' . '
    # # m = re.findall('w..l','hellow world')
    # # print(m)#' . '只能代指任意一个字符,不能代替换行符
    #
    # # #2.' ^ '
    # # ret = re.findall('^h...o','sadfafahellow')#只在开始匹配
    # # print(ret)
    # #
    # # #3.‘ $’
    # # ret = re.findall('h...o$','sadfafahellow1111111')#只在结尾匹配
    # # print(ret)
    # #
    # # #4.‘ * ’:重复匹配【0,正无穷】
    # # ret = re.findall('fa*','sadfafaaaaaaaaaaaabbbbbbbbb')
    # # print(ret)
    # # ret = re.findall('fa*','sadf')#['f'],因为可以陪陪0次
    # # print(ret)
    #
    # #45‘ + ’重复匹配,至少匹配一次
    # ret = re.findall('fa+','sadf')#['f'],因为可以陪陪0次
    # print(ret)
    # ret = re.findall('fa+','sadfa')#['f'],因为可以陪陪0次
    # print(ret)
    #
    # #‘ ?’只能匹配0到1个数
    # ret = re.findall('fa?','sadfbbaaaaaaafa')#['f'],因为可以陪陪0次
    # print(ret)
    #
    ret = re.findall('abc*?','abccc')
    print(ret)#['ab']

    意前面的*,+,?等都是贪婪匹配,也就是尽可能的匹配,后面加问号时期变成惰性匹配
    # #{}
    # ret = re.findall('a{1,5}b','wwwaaaaab')
    # print(ret)
    #
    # #结论
    # # *等价于{0,正无穷} +等价于{1,正无穷} ?等价于{0,1}
    #
    # #[]字符集
    # # ret = re.findall('a[b,d]c','abdc')
    # ret = re.findall('[a-z]','afb')#['a', 'f', 'b']
    # print(ret)
    #
    # #[]字符集,取消元字符的特殊功能(\,^,-)例外
    # ret = re.findall('[w,*]','awbc*')
    # print(ret)
    #
    # ret = re.findall('[1-9,a-z,A-Z]','12afbAB')#['1', '2', 'a', 'f', 'b', 'A', 'B']
    # print(ret)

    #^放在【】号里表示去反
    import re
    # ret = re.findall('[^a]', '12afbAB')

    # print(ret)#['1', '2', 'f', 'b', 'A', 'B']
    # ret = re.findall('[^a,b]', '12afbAB')#非a和b
    # print(ret)#['1', '2', 'f', 'A', 'B']


    # ‘ ’
    #反斜杠后面跟元字符去除特殊功能
    #反斜杠后面跟普通字符实现特殊功能

    #d 匹配任意数字,等价于 [0-9]
    #D 匹配任意非数字
    #s 匹配任意空白字符,等价于 [ f].
    #S 匹配任意非空字符
    #w 匹配字母数字及下划线
    #W 匹配非字母数字及下划线
    # 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。

    print(re.findall('d{11}','adb11111111112222222'))
    print(re.findall('D{3}','adb11111111112222222'))
    print(re.findall('sbc','a bc'))
    print(re.findall('S','a bc'))
    print(re.findall('w{4}bc','a112bc'))


    #######################################
    #匹配出一的个满足条件的结果
    ret = re.search('s.b','asdasdsebaaaasab')
    print(ret)#<_sre.SRE_Match object; span=(6, 8), match='sb'>
    print(ret.group())

    ret = re.search('a.','a.jb').group()
    print(ret)#a.
    ret = re.search('a+','a+jb').group()
    print(ret)#a+

    ret = re.findall('D:\c','abfde')


    ###################################
    #()

    print(re.search('(as)+','asasdqwdas').group())#asas
    print(re.search('(as)|3','asasdqwdas').group())
  • 相关阅读:
    可惜老板不看程序员写的书
    《让僵冷的翅膀飞起来》系列之四——Visitor模式之可行与不可爱
    《让僵冷的翅膀飞起来》系列之二——从实例谈Adapter模式
    策略模式的应用实践
    《让僵冷的翅膀飞起来》系列之三——从Adapter模式到Decorator模式
    用Design+Blend轻松制作环形文字
    silverlight3的"伪"3D续图片横向轮换
    silverlight.net官方网站图片切换源码
    css2.1中的属性选择器(css高手请绕道)
    多线程中的ManualResetEvent
  • 原文地址:https://www.cnblogs.com/xuxu-learn-python/p/8056494.html
Copyright © 2020-2023  润新知