zoukankan      html  css  js  c++  java
  • re正则匹配模块_python

    一、re模块

    1、模块功能

    通过re模块的接口接入正则表达式语言,主要用于匹配字符串。

    2、正则表达式元字符以及意义

    .  代表任意一个字符(除了换行符 )

    ^  以什么开头

    $  以什么结尾

    *  重复匹配*前面的字符出现0到多次 【0,正无穷】

    +  重复匹配+前面的字符1到多次【1,正无穷】

    ?  重复匹配?前面的字符0或1次【0,1】

    {数字}  代表前面的匹配次数,如'b{3}'

    {数字n,数字m}    代表前面的匹配次数n次到m次

    "|"  或

    '(abc){2}'  将abc括成一个整体,分组匹配

    []  代表字符集中的字符,或的关系,如'[a-z]',还有取消元字符意义的特殊功能,

      如'[^123]',^放在[]里的最前面,代表取反。

      如[1-5],-放在[]里面,代表一个范围

    与普通字符,代表一定意义如[d],具体代表意义如下;(但与特殊自字符,取消特殊性,如[^])

      d   匹配所有的数字,相当于[0-9]
      D   匹配非数字字符,相当于[^0-9]
      w   匹配数字字母下划线,相当于[0-9a-zA-Z_]
      W   匹配非数字字母下划线,相当于[^0-9a-zA-Z_]
      s   匹配任意空白符(空格,换行,回车,换页制表符)相当于[ f ]
      S   匹配任意非空白符,相当于[^ f ]
      A   匹配字符串开始,和^区别:A只匹配行首,在re.M下也不匹配他行行首
         匹配字符串结束,和$区别:只匹配结束,在re.M下也不匹配他行结束
         匹配单词的边界,空格之间
      B   匹配非单词的边界,空格之间

    ()  做分组,弄成整体字符组进行匹配,如'(bs)'

      添加组名分组:根据组名查出

      

     查找网址的例子:

    import re
    print(re.findall('www.(w+).com',"www.baidu.com")) #['baidu'],得出中间结果
    print(re.findall('www.(?:w+).com',"www.baidu.com")) #['www.baidu.com'],得出所有结果

    匹配身份证例子:

    3、模块的方法

    findall():所有结果都返回到一个列表里

    search():返回匹配到的第一个对象(object),可以调用group()方法返回结果(常用)

        print(re.search('www.(w+).com',"www.baidu.com").group())

    match():只在字符串开始匹配,只匹配开头符不符合。也是返回一个对象,也用group()返回结果。

    split() :分割字符串

        print(re.split('k+','sdfkwerkryy')) #['sdf', 'wer', 'ryy']

    sub("替换前","替换后","替换的字符串",替换多少个(不写默认全部替换)) 

        print(re.sub('chen','peng','chenxiaozanchen',1)) #pengxiaozanchen

    compile():提高一点点效率,编译规则,再调用

        

     finditer() : 得到的结果不是放到list,而是迭代器

        

     

    .

  • 相关阅读:
    bat文件转换为exe文件
    桌面快捷方式增(删)
    客户推广微信小程序的几种方法如下
    小程序开发客户对接流程
    Java MySQL 连接
    前端开发构建工具
    [转]chrome 的devtools 中setting 开启workspace , 也有点用处。不是很大
    回归基础的东西,不能只是“感觉会了”
    angular 的ui.router 定义不同的state 对应相同的url
    学习javascript 非常好的博客
  • 原文地址:https://www.cnblogs.com/chenxiaozan/p/12164382.html
Copyright © 2011-2022 走看看