zoukankan      html  css  js  c++  java
  • re模块 正则表达式,对字符串进行模糊匹配

    # re模块 正则表达式,对字符串进行模糊匹配
    import re
    
    # 元字符:. ^ $ * + ? {} [] | () 
    
    # . 代表任意的一个符号,除了
    
    
    # ^ 代表必须是从字符串的开头进行匹配
    
    # $ 代表必须是从字符串的结尾进行匹配
    
    # * 代表按*左边的字符进行匹配,包含0-无穷次 默认贪婪匹配,按最多的进行匹配
    
    # + 代表按+左边的字符进行匹配,包含1-无穷次 默认贪婪匹配,按最多的进行匹配
    
    # ? 代表按?左边的字符进行匹配,包含0-1次 默认贪婪匹配,按最多的进行匹配
    
    # {} 定义匹配的范围 默认贪婪匹配,按最多的进行匹配
    # {0, }  表示0到穷次 相当于*
    # {1, }  表示1到无穷次,相当于+
    # {0,1}  表示0到1次,相当于?
    
    # 将贪婪匹配改为惰性匹配,只需要在上面几个元字符后加?
    
    # [] 字符集 字符集中的字符都是或的作用,在字符集有功能的符号是 - ^ 
    # - 代表左边的字符到右边的字符
    # [a-z] 代表a到z
    # [A-Z] 代表A到Z
    # [0-9] 代表0到9
    # ^ 代表非
    # [^a-z] 代表非a-z的所有字符
    
    #  代表转义符,后面跟元字符则去除特殊功能,后面跟某些字符实现特殊功能
    # d 匹配任何十进制数;相当于[0-9]
    # D 匹配任何非数字字符;相当于[^0-9]
    # s 匹配任何空白字符; 相当于[	
    
    fv]
    # S 匹配任何非空白字符; 相当于[^	
    
    fv]
    # w 匹配任何字母数字字符与下划线;相当于[a-zA-Z0-9_]
    # W 匹配任何非字母数字字符与下划线;相当于[^a-zA-Z0-9_]
    #  匹配任何一个特殊字符边界;如空格 & # 等
    # 因为的python中,代表转义字符退格,当引入re模块想使用来匹配任何一个特殊字符边界时,应当使用\b

    Python中的转义字符有

    # 匹配句子中单词的I(非单词中的I)
    re.findall('I\b', 'Hello, I am LIST')  # 代表匹配'I '
    # 或者
    re.findall(r'I', 'Hello, I am LIST')  # r代表使用原生字符串,字符串中的内容不作任何转义
    
    # 求数学表达式最里层的括号中的字符
    re.findall('([^()]*)', '12+(34*6+2-5*(2-1))')   # 以(开对,以)结尾,中间不包含()的所有字符
    
    # | 代表匹配左边的字符或右边的字符
    
    # () 分组,将()中的字符作为一个整体
    # (?P<分组名>正则) 命名分组,将取到的结果放到相应的分组名下
    # 取出人名及年龄并放到命名的分组name和age中
    mygroup = re.search('(?P<name>[a-z]+)(?P<age>d+)', 'alex36wusir34xialv33')
    print(mygroup.group('name'))
    print(mygroup.group('age'))
  • 相关阅读:
    java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener问题解决
    Unix
    Win7 扩容磁盘分区
    在Java中怎样高效的推断数组中是否包括某个元素
    2.JAVA编程思想——一切都是对象
    Cookie-Parser是怎样解析签名后的cookie的(同一时候对cookie和cookie-signature进行说明)
    hive 索引
    Javascript属性constructor/prototype的底层原理
    HTML5 的四个亮点
    零基础学python-1.5 第一个程序
  • 原文地址:https://www.cnblogs.com/dangrui0725/p/9446639.html
Copyright © 2011-2022 走看看