zoukankan      html  css  js  c++  java
  • Python基础-re正则模块

    一、简介:
    正则表达式:是一种小型的、高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过re模块实现,正则表达式模式被编译成
    一系列的字节码,然后由用C编写的匹配引擎执行。

    二、字符匹配(普通字符、元字符)
    普通字符:
    元字符:. ^ $ * + ? { } [ ] | ( )

    后边跟元字符去除特殊功能
    后边跟普通字符实现特殊功能

    d 匹配任何十进制数;相当于[0-9]
    D 匹配任何非数字字符;相当于[^0-9]
    s 匹配任何空白字符;相当于[ fv]
    S 匹配任何非空白字符;相当于[^ fv]
    w 匹配任何字母数字字符;相当于[a-zA-Z0-9_]
    W 匹配任何非字母数字字符;相当于[^a-zA-Z0-9_]
     匹配一个单词边界,比如空格,&,#等

    import re
    匹配第一个满足的结果
    print(re.search('fansik', 'fansik,,,,,fansik').group())
    
    匹配手机号:
    print(re.findall('^0?1[3|4|5|8][0-9]d{8}$', '13141466177'))
    
    为分组取名字
    print(re.search('(?P<id>d{3})/(?P<name>w{3})', 'asfda521/dfdsfaa').group('id'))
    print(re.search('(?P<id>d{3})/(?P<name>w{3})', 'asfda521/dfdsfaa').group('name'))
    
    取消组的优先级
    print(re.findall('www.(w+).com', 'www.baidu.com'))
    # 执行结果:
    ['baidu']
    
    print(re.findall('www.(?:w+).com', 'www.baidu.com')) # 取消优先级后的执行结果: ['www.baidu.com']

    正则表达式的方法:
    findall():所有结果都返回到一个列表里
    search():返回匹配到的第一个对象(object),对象可以调用group()返回结果
    match():只在字符串开始匹配匹配
    print(re.match('fansik', 'fansikfanjinbao').group())
    split():以指定字符分割字符串
    print(re.split('ma', 'fansikmafanjinbaomazhansanmalisi'))
    执行结果:
    ['fansik', 'fanjinbao', 'zhansan', 'lisi']
    re.sub():字符替换
    print(re.sub('ma', 'df', 'fansikmafanjinbaomazhansanmalisi'))
    执行结果:
    fansikdffanjinbaodfzhansandflisi
    re.comile():编译一个规则,使用与该规则被反复使用的情况下
    obj = re.compile('.com')
    print(obj.findall('fansik.com'))
    常用的匹配规则
    手机:/^0?1[3|4|5|8][0-9]d{8}$/
    固话:/^0[d]{2,3}-[d]{7,8}$/
    电子邮箱:/^([a-z0-9_.-]+)@([da-z.-]+).([a-z.]{2,6})$/
    /^[a-zd]+(.[a-zd]+)*@([da-z](-[da-z])?)+(.{1,2}[a-z]+)+$/
    用户名:/^[a-z0-9_-]{3,16}$/
    密码:/^[a-z0-9_-]{6,18}$/
    URL:/^(https?://)?([da-z.-]+).([a-z.]{2,6})([/w .-]*)*/?$/
  • 相关阅读:
    网络流
    第k短路(Dijkstra & A*)
    线段树(区间修改)
    线段树(单点修改)
    分块
    单调队列
    NOIP 2006 T2 金明的预算方案
    背包
    CH 6021 走廊泼水节
    关于数字序列匹配的一些问题(lis, lcs, lcis等)
  • 原文地址:https://www.cnblogs.com/fansik/p/7692223.html
Copyright © 2011-2022 走看看