zoukankan      html  css  js  c++  java
  • python中的re模块——正则表达式

    re模块:正则表达式

    正则表达式:为匹配字符

    import re   #导入re模块
    #re.findall('正则表达式','被匹配字符')  re模块下findall用法
    在正则表达式中:
    w   表示匹配一个字母、数字、下划线
    W   匹配一个非字母、数字、下划线(小写w的取反)
    s   小写s匹配任意空白字符
    S   大写匹配任意非空白字符
    d   匹配任意数字字符
    D   匹配任意非数字字符
    
       只匹配换行符
    	   只匹配制表符
    ^或者A    仅从开头匹配,若开头未匹配成功,则结束
    $    仅从尾部开始匹配
    .    代表一个字符,任意字符,该字符是除换行符之外任意字符 re.DOTALL可以让. 匹配换行符
    []   匹配一个字符,该字符是我们自定义范围,[0-9]表示数字0-9中一个,[a-zA-Z]表示所有小写大写字母中一个,[=-*/]表示加减乘除符号中任意一个-表示转译的意思。
    [^0-9]  同样表示取反的意思,非0-9
    #重复匹配
    ?   匹配?左边那一个字符出现0或者1次,也就是左边字符有或者无都行
    print(re.findall('ab?','a aba abb ab a ab'))
    #匹配的结果是['a','ab','a','ab','ab','a','ab']
    *   匹配*左边那个字符0到无穷次,只要*左边字符出现就取走
    +   匹配+左边一个字符出现1到无穷次
    {n,m}  匹配左边字符出现n到m次,{n}指定n次数
    .*     匹配任意0个到无穷个字符,贪婪匹配,匹配到最远的结束字符
    .*?    匹配任意0个到无穷个字符,非贪婪匹配,匹配至最近的结束字符
    |      或者,连接两个正则表达式 ('company|companies')
    ()     分组,普通分组compan(y|ies)匹配只保留括号内的内容,
                但compan(?y|ies)则取消只保留括号内的内容,会匹配全部的内容
    re.I  忽略大小写
    re.M  以
    为分隔符,多行匹配
    如果字符中有  'ac aaa' 那在python语法中可写成
    re.findall('a\\c','ac aaa')
    或者 re.findall(r'a\c', 'ac aaa')
    ​
    re模块的其他用法
    #re.search()  只要匹配一次成功就结束,该方法下有group用法
    re.search()  有返回值
    res = re.search()  
    res.group(0)  0表示全部, 1表示第一分组  2表示第二分组
    ​
    #re.match()
    re.match('abc')  等价于re.search('^abc')
    表示只从该字符首开始
    obj=re.compile('d{2}')
    ​
    print(obj.search('abc123eeee').group()) #12
    print(obj.findall('abc123eeee')) #['12'],重用了obj

     

  • 相关阅读:
    纯真IP数据库格式详解
    iframe框架详解
    搜刮的网址
    Drupal设置首页默认内容
    PHP开发之路之一WAMP的安装和配置
    PHP中json序列化后中文的编码显示问题
    Mysql转化blob为可读
    使用Xtrabackup来备份你的mysql
    MySQL压力测试工具mysqlslap的使用
    Cacti 监控 MySQL
  • 原文地址:https://www.cnblogs.com/5j421/p/10098164.html
Copyright © 2011-2022 走看看