• 正则表达式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个分组的子表达式,如果它经匹配。否则指的是八进制字符码的表达式。
    • 分组匹配

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

     

  • 相关阅读:
    digits
    Graph
    noip2013货车运输
    noip2013华容道
    codevs科技庄园
    POJ3321 Apple tree
    第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--F-等式
    第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--E-回旋星空
    第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--D-psd面试
    第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--A-跳台阶
  • 原文地址:https://www.cnblogs.com/yu-931017/p/10077480.html
Copyright © 2020-2023  润新知