zoukankan      html  css  js  c++  java
  • Python瓦匠 —— 正则表达式(四)

    一 字符分类

    缩写字符分类:

    d    0-9的任何数字

    D     除0-9的数字以外的任何字符

    w     任何字母数字或下划线字符(可以认为是匹配“单词”字符)

    W    除字母,数字和下划线以外的任何字符

    s      空格,制表符或换行符(可以认为是匹配“空白”字符)

    S     除空格,制表符和换行符以外的任何字符

    [0 - 5] 表示匹配数字0到5。(定义自己的字符分类)

    二 建立自己的字符分类

    [ ] 可以用来建立自己的字符集,在[ ]里面的普通的正则表达式符号不会被解释。所以不需要加倒斜杠。

    例如:[a-zA-Z0-9]表示匹配所有小写字母,大写字母,0-9的数字。

    [ ] 通过在字符分类的左方括号后加上一个插入字符(^),就可以的到非字符类。非字符类将匹配不在这个字符类中所有字符。

    例如:

    >>> import re
    >>> schoolRegex = re.compile(r'[^abcd]')
    >>> schoolRegex.findall('asdfasdgc')
    ['s', 'f', 's', 'g']

     匹配所有非abcd的字母。

    三 插入字符和美元字符

    可以在正则表达式的开始处使用插入符号(^),表明匹配必须发生在被查找文本的开始。

    可以在正则表达式的末尾加上美元符号($),字符串必须以这个正则表达式的模式结束。^和$可以同时使用,表示整个字符串必须匹配该模式。

    例如:

    >>> begain = re.compile(r'Hello')#匹配以Hello开头的字符
    >>> begain.search('Hello World')
    <_sre.SRE_Match object; span=(0, 5), match='Hello'>
    >>> print(begain.search('hello world'))
    None

    例如:

    >>> end = re.compile(r'World$')
    >>> end.search('Hello World')
    <_sre.SRE_Match object; span=(6, 11), match='World'>
    >>> end.search('Hello world') == None
    True

    正则表达式r'^d+$' 表示匹配从开始到结束都是数字的字符串。

    例如:

    import re
    
    whole = re.compile(r'^d+$')#匹配以都是数字的字符串。
    >>> whole.search('1234135345')
    <_sre.SRE_Match object; span=(0, 10), match='1234135345'>
    >>> whole.search('13hi128314') == None
    True
  • 相关阅读:
    读《阿里云是如何失控的》有感
    LeetCode Search in Rotated Sorted Array 在旋转了的数组中查找
    界面编程模仿篇(QQ登录界面逼真篇)
    最牛B的编码套路
    QinQ封装及终结详解
    seaJs学习笔记之javascript的依赖问题
    Deploy maven on Linux OS
    c++——inline内联函数
    c++——引用
    c++——const关键字
  • 原文地址:https://www.cnblogs.com/BeautifulSoup/p/8410474.html
Copyright © 2011-2022 走看看