• 基础复习正则表达式


    . 匹配任意一个字符,换行符除外

    \ 代表字符本身,比如 a\.c匹配a.c,\[匹配[而不是正则中的[]

    [...] `匹配括号中出现的任意单个字符

    [^...] `不匹配方括号中列出的单个字符,比如[^123]匹配除123以外的字符

    \d 匹配0-9任意一个数字

    \D 匹配任意一个非数字的字符,等价于 [^\d]

    \s 匹配任意一个空白字符,

    \S 匹配任意一个非空白的字符

    \w 匹配一个字母或数字,字符范围[A-Za-z0-9_]

    \W 非单词字符

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

    + 匹配前一个字符1次或多次

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

    {m} 匹配前一个字符m次

    {m,n} 匹配前一个字符0-n次,最多n次

    ^ 开头

    $ 结尾

    \A 仅匹配字符串的开始

    \b 匹配一个单词的边界,即单词到空格的位置,比如'st'可以匹配
    ‘test abc’中的st,但不能匹配‘tester abc’中的st

    \B\b 相反,表示匹配非单词边界,如上例中可以匹配tester abc中是st,而不能匹配test abc中的st

    \Z 匹配匹配字符串结束,存在换行的话明知匹配到换行前的结束字符

    比如abc\Z匹配abc

    | 或,逻辑匹配符

    (...) 后向引用/分组匹配,小括号括起来的的正则表达式作为分组

    (?P<number>) 分组引用,引用分组编号为number的分组

    (?P=name) 分组引用,引用分组命名为name的分组

    前向否定断言

    后向否定断言

    前向肯定断言

    后向肯定断言

    pattern对象

    是一个编译好的正则表达式,不能直接实例化,必须使用re.compile()函数进行构造

    p = re.compile()对正则表达式进行编译,返回一个Pattern对象
    

    例子

    从一个字符串中找出来ip

    >>> s = "abc10.249.1.99hello192.168.1.101world"
    >>> re.findall(r'[12]\d{1,2}\.\d{1,3}\.\d{1,3}\.\d{1,3}',s)
    ['10.249.1.99', '192.168.1.101']
    
    >>> re.findall(r'[12]\d{1,2}\.\d{1,3}\.\d{1,3}',s)
    ['10.249.1', '192.168.1']
    

    使用pattern的写法就是这样

    >>> p = re.compile(r'[12]\d{1,2}\.\d{1,3}\.\d{1,3}')
    >>> p.findall(s)
    ['10.249.1', '192.168.1']
    
    更多学习笔记移步 https://www.cnblogs.com/kknote
  • 相关阅读:
    hdu4726
    hdu2709
    hdu4706
    hdu4715
    快速幂取模
    快速幂
    asp.net中页面传值
    微信小程序支付
    sql 查询重复记录值取一条
    bower使用
  • 原文地址:https://www.cnblogs.com/kknote/p/15682098.html
Copyright © 2020-2023  润新知