正则表达式之元字符及函数使用

</pre><p>    所有笔记均在学习云课堂http://study.163.com/course/courseLearn.htm?courseId=302001#/learn上所得</p><p>字符匹配</p><ul><li>普通字符</li></ul><ul><li>元字符:</li></ul><ol><li>[ ]:用来指定一个字符集可匹配其中任一个字符<pre name="code" class="html">import re
st="top tip tqp twp"
res=r"t[io]p"
re.findall(res,st)
['top','tip']
res=r"t[^io]p"
re.findall(res,st)
['tpq','twp']
  • ^:匹配行首或者除了某个字符集之外
    s="helllo world, hello boy"
    r=r"hello"
    re.findall(r,s)
    ['hello','hello']
    r=r"^hello"
    re.findall(r,s)
    [‘hello']
  • $:匹配行尾
  • \ :后面加不同字符表示不同意义:
    \[或者\\表示取消所有字符:
    \d 匹配任何十进制数;即类[0-9]
    \D 任何非数字字符
    \s 任何空白字符,即类[\t\n\r\f\v]
    \S 任何非空白字符
    \w 任何字母数字字符
    \W 任何非字母数字字
  • * : 指定前一个字符可被匹配零次或更多次
    #匹配北京电话号码010-12345678(8位)
    r=r"^010-\d{8}"
    #而用*可以重复0或更多次
    r=r"ab*"
    re.findall(r,'a')
    ['a']
  • + :指定前一个字符至少被匹配1次
  • ?  :匹配一次或零次;可以做最小匹配
    r=r"^010-?\d{8}$"
    re.findall(r,'010-12345678')
    [010-12345678]
    re.findall(r,'01012345678')
    [01012345678]
  • {m n } :至少重复m次,至多n次
      • 函数re.compile():用来编译正则表达式
        #加re.I参数使不区分大小写
        csvt_re=re.compile(r'csvt',re.I)
        csvt_re.findall('CsVT')
        ['CsVT'] 
      • split函数:切割
        s="123 +456-789*000"
        re.split(r'[\+\-\*]',s)
        ['123','456'.,'789','000']
      • subn函数:替换
        rs=r'c..t'
        re.sub(re,'python','csvt caat cvvt cccc')
        ('python python python cccc',3)

        tips: dir(re)查看re模块中的函数,help(函数名)获取函数使用方法

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值