zoukankan      html  css  js  c++  java
  • python之正则表达式

                                  

                                   

      常用的匹配语法:

    方法

    说明

    re.match

    从头匹配,返回对象,仅匹配一次就返回

    re.search

    从任意位置匹配,返回对象,仅匹配一次就返回

    re.findall

    返回所有匹配上的

    re.splitall(findall相反)

    以匹配到的字符当做列表分隔符

    re.sub

    匹配字符并替换

     常用的匹配模式:

    模式

    说明

    re.I(re.IGNORECASE)

    忽略大小写(括号内是完整写法,下同)

    M(MULTILINE)

    多行模式,改变'^''$'的行为(参见上表)

    S(DOTALL)

    匹配所有的字符,包括换行符/n

    X(VERBOSE)

    忽略规则表达式中的空白,并允许使用’#’来引导一个注释

    常用的正则表达式符号:

    符号

    说明

    .

    默认匹配除 之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行

    ^或A

    匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r"^a"," abc eee",flags=re.MULTILINE)

    $或

    匹配字符结尾,或e.search("foo$","bfoo sdfsf",flags=re.MULTILINE).group()也可以

    *

    匹配*号前的字符0次或多次,re.findall("ab*","cabb3abcbbac")  结果为['abb', 'ab', 'a']

    +

    匹配前一个字符1次或多次,re.findall("ab+","ab+cd+abb+bba") 结果['ab', 'abb']

    ?

    匹配前一个字符1次或0次

    {m}

    匹配前一个字符m次

    {n,m}

    匹配前一个字符n到m次,re.findall("ab{1,3}","abb abc abbcbbb") 结果'abb', 'ab', 'abb']

    |

    匹配|左或|右的字符,re.search("abc|ABC","ABCBabcCD").group() 结果'ABC'

    (...)

    分组匹配,re.search("(abc){2}a(123|456)c", "abcabca456c").group() 结果 abcabca456c

    d

    匹配数字0-9

    D

    匹配非数字

    w

    匹配[A-Za-z0-9]

    W

    匹配非[A-Za-z0-9]

    s

    匹配空白字符、 、 、 , re.search("s+","ab c1 3").group() 结果 ' '

    (?P<name>...)

    分组匹配 re.search("(?P<province>[0-9]{4})(?P<city>[0-9]{2})(?P<birthday>[0-9]{4})","371481199306143242").groupdict("city")

    结果{'province': '3714', 'city': '81', 'birthday':'1993'}

    两个小Tip:

    1、python里的原生字符解决了 ""问题,如匹配"\d",只需在字符串前面加个r,写成r"d"表示该字符串是原生字符串,无需转义 。       

    2、compile的作用:加速,如果要多次使用同一规则来进行匹配的话,可以使用re.compile函数来将规则预编译,使用编译过返回的Regular Expression Object或叫做Pattern对象来进行查找。

        

  • 相关阅读:
    改造vant日期选择
    css3元素垂直居中
    npm综合
    (转)网页加水印方法
    Mac下IDEA自带MAVEN插件的全局环境配置
    隐藏注册控件窗口
    High performance optimization and acceleration for randomWalk, deepwalk, node2vec (Python)
    How to add conda env into jupyter notebook installed by pip
    The Power of WordNet and How to Use It in Python
    背单词app测评,2018年
  • 原文地址:https://www.cnblogs.com/stin/p/8315927.html
Copyright © 2011-2022 走看看