zoukankan      html  css  js  c++  java
  • 正则表达式(re模块)

    就其本质而言,正则表达式(或 RE)是一种小型的、高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现。正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行。
     
    字符匹配(普通字符,元字符):
    1 普通字符:大多数字符和字母都会和自身匹配
      >>> re.findall('alvin','yuanaleSxalexwupeiqi')
      []
    2 元字符:. ^ $ * + ? { } [ ] | ( )
    .占位符 表示占有一个位置 匹配换行符" "外的字符
    ^表示从开头查找 多行模式中匹配每一行的开头
    $表示从结尾查找 多行模式中匹配每一行的开头
    *匹配前一个字符0或者无限次
    +匹配前一个字符1或者无限次
    ?匹配前一个字符0或者1次
    {n}匹配前一个字符n次
    {m,n}匹配前一个字符m至n次
    d  匹配任何十进制数;      它相当于类 [0-9]。
    D  匹配任何非数字字符;    它相当于类 [^0-9]。
    s  匹配任何空白字符;      它相当于类 [ fv]。
    S  匹配任何非空白字符;    它相当于类 [^ fv]。
    w  匹配任何字母数字字符;   它相当于类 [a-zA-Z0-9_]。
    W  匹配任何非字母数字字符; 它相当于类 [^a-zA-Z0-9_]
      匹配一个特殊字符边界,比如空格 ,&,#等
    [ ] 可以取其中一个值 内部除了 ^ -其他无特殊意义
    ( )分组 被括起来的表达式作为分组
    (?P<name>)分组 额外的别名!
    (?:)取消优先级

    例:ret=re.search('(?P<id>d{2})/(?P<name>w{3})','23/com')

    print(ret.group())#23/com
    print(ret.group('id'))#23
    |元字符 表示或
    例:
    ret=re.search('(ab)|d','rabhdg8sd')
    print(ret.group())#ab
         例:
    • [0-9a-zA-Z\_]可以匹配一个数字、字母或者下划线;

    • [0-9a-zA-Z\_]+可以匹配至少由一个数字、字母或者下划线组成的字符串,比如'a100''0_Z''Py3000'等等;

    • [a-zA-Z\_][0-9a-zA-Z\_]*可以匹配由字母或下划线开头,后接任意个由一个数字、字母或者下划线组成的字符串,也就是Python合法的变量;

    • [a-zA-Z\_][0-9a-zA-Z\_]{0, 19}更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)
    re模块下的常用方法
    re.findall("a","alvin yuan") #返回所有满足匹配条件的结果,放在列表里
  • 相关阅读:
    linux php5.6 安装Redis扩展
    linux php7.2安装扩展memcached
    极简的switch控件
    整理了最近百年的藏历数据,做了个公历藏历映射的小工具
    我是怎么让全国最大的儿童失踪预警平台流量掉底的
    jq的getScript函数不支持chaset?override掉!
    大家好像都比较少关心webcrypto,试试写个简单的sha1/sha256/sha384/sha512实现看看
    惊喜:opera换webkit内核后完美支持SDCH压缩协议
    TCPIP协议实践:wireshark抓包分析之链路层与网络层
    使用unity3d和tensorflow实现基于姿态估计的体感游戏
  • 原文地址:https://www.cnblogs.com/lizhaoyu/p/7117198.html
Copyright © 2011-2022 走看看