zoukankan      html  css  js  c++  java
  • 学习Python第十一天

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-

    import re

    # wp后面第二个字符如果p那就能匹配到
    # a = re.findall('wp.p','fewiopoewpfpswp---wp')
    # print(a)
    # ^ 必须是开头位置相同 不然匹配不到
    # a = re.findall('^wp','wpfewiopoewpfps---')
    # print(a)
    # $必须是结尾相同
    # a = re.findall('wp$','wpfewiopoewpfps---wp')
    # print(a)
    # 只匹配*前面的字符相同 匹配0~多次
    # a = re.findall('wp*','fewiopoewpfps---wpppppppp')
    # print(a)
    # 只匹配*前面的字符相同 匹配1~多次
    # a = re.findall('wp+','fewiopoewpfps---wpppppppp')
    # print(a)
    # 只匹配*前面的字符相同 匹配0~1次
    # a = re.findall('wp?','fewiopoewpfps---wpppppppp')
    # print(a)
    # 匹配wp后三到五位
    # a = re.findall('wp{3,5}','fewiopoewpfps---wpppppppp')
    # print(a)
    # a后面跟一个w或者是p后面在跟一个d
    # a = re.findall('e[wp]i','fewiopoewpfpswppp')
    # print(a)
    # 匹配所有小写字母
    # a = re.findall('[a-z]','fewiopoewpfpswppp')
    # print(a)
    # [^xxx] 除了中括号里面的内容,其他都匹配(0不在数字的匹配范围之内)
    # a = re.findall('[^1-9]','fewiopoewpfps3wppp80')
    # print(a)
    # ():组 值匹配组里面的内容
    # a = re.findall('(wp)*','fewiop oewpfps3wppp80')
    # print(a)

    # :反斜杠后面跟元字符去除特殊功能
    # 反斜杠后面跟普通字符实现特殊功能
    # 引用序号对应的字组锁匹配的字符串
    # a = re.search(r"(aaa)(bbb)ccc21","aaabbbcccbbbaaa").group() # 2相当于bbb
    # print(a)

    # d 匹配任何十禁止数;相当于类[0-9]
    # D 匹配任何非数字字符;相当于类[^0-9]
    # s 匹配任何空白字符;相当于类[ fv]
    # S 匹配任何非空白字符 相当于类[^ fv]
    # w 匹配任何字母数字字符;相当于类[a-zA-Z0-9_]
    # w 匹配任何非字母数字字符;相当于类[^a-zA-Z0-9_]
    #  匹配一个单词边界,也就是指单词和空格间的位置
    #  就是用在你匹配整个单词的时候,如果不是整个单词就不匹配。
    # 例:匹配 I 单词的话,很多单词里面都有I 但我指向匹配I(独立的单词)就用
    # a = re.findall(r'abc','abc fdsfewrewabc')
    # print(a)

    # a = re.findall('[d]','fewiop oewpfps3wppp80')
    # print(a)
    # r"p(d+?)" 获取p后面的所有数字
    # r"p(d+)“ 获取p后面的第一个数字
    # a = re.findall(r"p(d+)",'fes3wppp8086787')
    # print(a)
    # search 包含w和之后的所有数字
    # a = re.search(r"w(d+)",'fdsfew12321fds').group()
    # print(a)
    # 匹配w,f之间所有的数字,即便d+? (在这种情况下问号不起作用)
    # a = re.search(r"w(d+?)f",'fdsfew12321fds').group()
    # print(a)

    # re.I 使匹配对大小写不敏感
    # re.L 做本地化识别(locale-aware)匹配
    # re.M 多行匹配,影响^和$
    # re.S 是 . 匹配包括换行在内的所有字符
    # a = re.search('com','COMADFS',re.I).group()
    # print(a)
    # a = re.findall('.','COMA dfs',re.S)
    # print(a)

    # group() 返回被re匹配的字符串
    # start() 返回匹配开始的位置
    # end() 返回匹配结束的位置
    # span() 返回一个元祖包含匹配(开始,结束)的位置
    # group(n.m) 返回组号为n,m所匹配的字符串,如果组好不存在

    # a = '12312abc3210'
    # b = re.search("([0-9]*)([a-z]*)([1-9]*)",a).group(1,2)
    # print(b)
    # re.sub('原来的内容(.为通配符但是只匹配一个字符)','要替换的内容','字符串',替换次数(如果写2)就值替换匹配合格的前两个)
    # a = re.sub('g.t','have','i get a,i got b, i gat c',2)
    # print(a)
    # re.subn 会返回一个替换的次数
    # a = re.subn('g.t','have','i get a,i got b, i gat c')
    # print(a)



    # p= re.compile(r'd+')
    # w = p.finditer('11 fedsfe22 gfgr,10....,9')
    # print(w)
    # for match in w:
    # print(match.group() , match.span())

    # c = re.search(r"(([01]?d?d|2[0-4]d|25[0-5]).){3}([01]?d?d|2[0-4]d|25[0-5])", "192.168.1.1").group()
    # [01]? 第一位可有可无 如果有不是0 就是1
    # d? 第二位也是可有可无
    # [01]?d?d 最大范围是0~199
    # |2[0-4]d 或最大范围是200~249
    # |25[0-5] 或最大范围是250~255
    # . 点
    # {3}重复三次
    # print(c)


    # 不会做
    source = "1-2*((60-30+(-9-2-5-2*3-5/3-40*4/2-3/5+6*3)*(-9-2-5-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))"
    a = re.search('([^()]*)', source).group()
    b = re.search('d+.?d*([*/]|**|[+-])[-]?d+.?d*', a).group()
    # c = re.search('d+.?d*',a).group()
    # print(c)
    # d+ 数字(最少有一次) .? 小数点可有可无 d*小数点后面的数字可有可无,
    print(b)
    print(a)
  • 相关阅读:
    方法的重载;数组 (Java Day05)
    switch语句;for/while循环;死循环;跳转语句;嵌套循环;方法及方法的调用(Java Day04)
    运算符;键盘录入;分支结构(Java Day03)
    基础概念学习;常量;变量;编码表;数据类型转换(Java Day02)
    Java语言基本概述;入门案例学习;环境变量的配置;Eclipse安装(Java Day01)
    JVM内存模型
    java多线程对CountDownLatch的使用
    System.nanoTime()的使用
    this用法
    idea取消重复代码提醒的功能
  • 原文地址:https://www.cnblogs.com/tornados/p/7910038.html
Copyright © 2011-2022 走看看