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

    一、正则表达式模块re:

    1.定义:正则表达式(或re)是一种小型的、高度专业的编程语言。

    2.正则匹配之字符匹配:

      匹配的对象必须是字符串类型。正则匹配的方式主要有三种:

    正则匹配方式一:re.findall(‘  ’,字符串)

    匹配字符串中所有符合规则的字符串,并以列表的方式返回

    注意:findall如果使用了分组,则输出的内容是分组中的内容(也就是( )内的内容)加上?来启用‘不捕捉模式’,可以返回全部内容

    正则匹配方式二:re.search(‘   ’,字符串)

    这个方式只会匹配一个值,匹配到就结束,不管后面有几个都不再匹配,如果没有匹配到会报错,匹配到的结果需要通过group()取得。Print(re.search(  ).group()),结果是非列表对象。

    正则匹配方式三:re.match(‘   ’,字符串)

    这个方式从开头第一个字符开始匹配,如果第一个字符就匹配不上,直接返回的结果为None,匹配上了也需要group()取得结果。

    等同于:re.match()==re.search(‘^...’,”字符串”)

    常用元字符:

    • . 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符
    • ^ 匹配起始位置
    • $ 匹配终止位置
    • 匹配前面的字符0到多次,可以没有
    • 匹配前面的字符1到多次,最少有一个
    • ? 匹配前面的字符0-1次
    • 转义符 反斜杠后面跟元字符去除特殊功能, 反斜杠后面跟普通字母实现特殊功能
    • {} 匹配次数 如 {3}匹配3次,{1,5} 匹配1到五次
    • [] 或的作用 a[bc]d 匹配 abd acd ,除了-,非^,"" 里面的特殊符号没有任何意义

    其他特殊意义的字符加字母:

    • w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。
    • W 匹配任何非单词字符。等价于 '[A-Za-z0-9_]'。
    • s 匹配任意空白字符,等价于 [ f].
    • S 匹配任意非空字符
    • d 匹配任意数字,等价于 [0-9].
    • D 匹配任意非数字
    • A 匹配字符串开始
    •  匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。c
    • z 匹配字符串结束
    • G 匹配最后匹配完成的位置。
    •  匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er' 可以匹配never 中的 'er',但不能匹配 verb 中的 'er'。
    • B 匹配非单词边界。'erB' 能匹配 verb 中的 'er',但不能匹配 never中的 'er'。
    • , , 等. 匹配一个换行符。匹配一个制表符。等
    • 1...9 匹配第n个分组的子表达式。
    • 10 匹配第n个分组的子表达式,如果它经匹配。否则指的是八进制字符码的表达式。
    • 分组匹配

    分组匹配一般使用(),被括起来的表达式将作为一组,上面所说的只是针对单个字符串,如果需要匹配多个字符串,则用到了分组匹配。先匹配成功全部正则,再匹配成功的局部内容提取出来

     

  • 相关阅读:
    进程、线程、轻量级进程、协程与 go 的 goroutine
    Base: 一种 Acid 的替代方案
    单点登录 SSO(Single Sign-On)的实现原理
    大型网站之分布式会话管理
    PayPal 高级工程总监:读完这 100 篇文献,就能成大数据高手
    主流编程语言的 33 款开源爬虫
    docker基础命令
    mysql实现首字母从A-Z排序
    solr+zookeeper集群配置
    Lucene与Solr基础
  • 原文地址:https://www.cnblogs.com/yu-931017/p/10077480.html
Copyright © 2011-2022 走看看