zoukankan      html  css  js  c++  java
  • python正则表达式

    元字符 . ^ $ * + ? {} [] | ()

    . 匹配除换号符以为的任意一个符号

    ret=re.findall('李.','李杰,李刚,王超,占山,李莲英')
    print(ret)
    执行结果
    ['李杰', '李刚', '李莲']
    ret2=re.findall('李..','李杰,李刚,王超,占山,李莲英')
    print(ret2)
    执行结果
    ['李杰,', '李刚,', '李莲英']

    ^ 以指定字符开头

    ret3=re.findall('^李.','yuan李杰,李刚,王超,占山,李莲英')
    print(ret3)
    执行结果
    []

    $ 以指定字符结尾

    ret=re.findall('英$','yuan李杰,李刚,王超,占山,李莲英')
    print(ret)
    执行结果
    ['']

    重复 *:[0,∞)   +:[1,∞)     ?:[0,1]     {}:指定次数

    ret4=re.findall('d{18}','2665622,54694433,4113261996035402554,5565599')
    print(ret4)
    执行结果
    ['411326199603540255']
    ret5=re.findall('131d*','13158956,6354895131696,6587952132254131')
    print(ret5)
    执行结果
    ['13158956', '131696', '131']

      转义符,将元字符转换为普通符号;将一些普通符号转换为特殊功能的符号
    d匹配任何十进制数,等于[0-9]
    D匹配任何非数字字符,等于[^0-9]
    s匹配任何空白字符,等于[ fv]
    S匹配任何非空白字符,等于[^ fv]
    w匹配任何字母数字字符,等于[a-zA-Z0-9_]
    W匹配任何非字母数字字符,等于[^a-zA-Z0-9_]
    匹配一个特殊字符边界,比如空格,&,#等

    ret=re.findall(r'I','hello I am xiaobai')
    print(ret)
    执行结果
    ['I']
    ret=re.findall('d','hello I am xiaobai')
    print(ret)
    执行结果
    []
    ret=re.findall('D','hello I am xiaobai')
    print(ret)
    执行结果
    ['h', 'e', 'l', 'l', 'o', ' ', 'I', ' ', 'a', 'm', ' ', 'x', 'i', 'a', 'o', 'b', 'a', 'i']
    ret=re.findall('s','hello I am xiaobai')
    print(ret)
    执行结果
    [' ', ' ', ' ']
    ret=re.findall('S','hello I am xiaobai')
    print(ret)
    执行结果
    ['h', 'e', 'l', 'l', 'o', 'I', 'a', 'm', 'x', 'i', 'a', 'o', 'b', 'a', 'i']
    ret=re.findall('w','hello I am xiaobai')
    print(ret)
    执行结果
    ['h', 'e', 'l', 'l', 'o', 'I', 'a', 'm', 'x', 'i', 'a', 'o', 'b', 'a', 'i']
    ret=re.findall('W','hello I am xiaobai')
    print(ret)
    执行结果
    [' ', ' ', ' ']

     | 或者

    ret=re.findall('www.(?:w+).(?:com|cn)','www.oldboy.com;www.oldboy.cn;www.baidu.com')
    print(ret)
    执行结果
    ['www.oldboy.com', 'www.oldboy.cn', 'www.baidu.com']

    ()分组 优先寻找并显示分组内容

    ret6=re.findall('yuan+','fadsyuannnnndayuanyuanyaun')
    print(ret6)
    执行结果
    ['yuannnnn', 'yuan', 'yuan']
    ret7=re.findall('(yuan)+','fadayuannnnasdayuanyuanyaun')
    print(ret7)
    执行结果
    ['yuan', 'yuan']
    ret=re.search('d|(ab)','rabhdg8sd')
    print(ret.group())
    执行结果
    ab
    ret=re.findall('d|(?:ab)','rabhdg8sd')
    print(ret)
    执行结果
    ['ab', '8']

    命名分组

    ret10=re.search(r'-blog-articles-(?P<year>20[01]d)-(?P<month>[01][1-9])','-blog-articles-2017-09')
    print(ret10.group())
    print(ret10.group('month'))
    执行结果
    -blog-articles-2017-09
    09

    字符集[ ],只匹配一个符号,元字符失效;只有三个特殊符号:- ^

    ret=re.findall(r'a[^d]c','dasda54adaga3casc')
    print(ret)
    执行结果
    ['asc']

    re.search() 只匹配一项符合规则的元素

    ret8=re.search('d+','123qweqweq654eqw863')
    print(ret8)
    print(ret8.group())
    执行结果
    <_sre.SRE_Match object; span=(0, 3), match='123'>
    123

    re.match() 只匹配字符串开始的位置

    ret9=re.match('d+','448959dasdas4741')
    print(ret9.group())
    执行结果
    448959
    #configparser模块 用于文件的读与写操作
    import configparser
    cfp=configparser.ConfigParser()
    cfp['DEFAULT']={'ServerAliveInterval':45,'Compression':'YES','CompressionLevel':9,'ForwardX11':'YES'
                    }
    cfp['bitbucket.org']={'User':'hg'}
    cfp['topsecret.server.com']={'port':5000123,'ForwardX11':'no'}
    with open('cfp.ini')as f:
        cfp.write(f)
    #操作文件 读与写操作
    cfp=configparser.ConfigParser()
    cfp.read('cfp.ini')
    print(cfp.sections())
    print(cfp.items('bitbucket.org'))
    print(cfp.options('bitbucket.org'))
     
    #subprocess模块
    import subprocess
    s=subprocess.Popen('dir',shell=True)#开启新的进程
    s.wait()
    print('ending')
    s=subprocess.Popen('dir',shell=True,stdout=subprocess.PIPE)
    print(s.stdout.read().decode('gbk'))
  • 相关阅读:
    spring mvc valid
    记录一次springmvc 404
    用到的 git 命令
    tomcat java.lang.OutOfMemoryError: PermGen space
    angularjs 表单验证 和 页面初始化闪烁
    在jsp中 EL表达式不生效
    关于jsp中使用jstl的问题
    块级元素,内联元素和定位
    java学习第4天
    STL 常用集合算法
  • 原文地址:https://www.cnblogs.com/c491873412/p/7081110.html
Copyright © 2011-2022 走看看