zoukankan      html  css  js  c++  java
  • 正则表达式日常笔记

    正则要点一:

    Python中正则表达式中r的定义:
        特殊字符  -->  普通字符   例: 
      转换成普通字符
          编程语言:  
     ---->  \n
           正则匹配: 
     ---->   \n
    对于Python中的正则匹配的转义需要经过两层
         特殊字符 --> 编程语言 --> 正则匹配 --> 普通字符
    添加了r后的: re.findall(r'\n','\n')
        特殊字符 --> 正则匹配 --> 普通字符
    
    r的含义是Python的内置替代编程语言的转义

    正则中在查找的字段前或后添加新内容:

    方法一

    str = '123.jpg, 456.jpg, 789.jpg'
    b = re.sub('(?P<data>d+.jpg)',r'sdf\g<data>', str)
    print(b)
    
    结果:sdf123.jpg, sdf456.jpg, sdf789.jpg

    方法二

    def double(matched):
        value = matched.group('value')
        return str( 'sdd/' + value)
    s = '567'
    print(re.sub('(?P<value>d+)', double, s))  #1.在第二参数中,可以添加字符串或函数 2.?P<value>的意思就是命名一个名字为value的组,匹配规则符合后面的/d+
    
    结果:sdd/567

    在匹配 在内的其他字符:

    import re
    
    #在res字符串中,除了有 
     ,还有空格,tab键
    res = '''
        dd
        fd
        e
        '''
    result1 = re.findall('dd*e',res)    
    result2 = re.findall('dd[sS]*e',res)
    print(result1)
    print(result2)

    结果:

        []
        ['dd fd e']

    对应学习参考:https://baike.baidu.com/item/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1700215?fr=aladdin

        

    匹配重复单词:

    import re
    s2 = 'appleapple56tototowidth'
    p = re.compile(r'(w+)1+')    #1表示使用编号为1的分组    
    #p = re.compile(r'(w+)1{1,}') 匹配重复单词的次数 {1,}代表2次以上(包括2) 在此{}中特殊性 print(p.findall(s2))

    结果:['apple', 'to']
  • 相关阅读:
    理解volatile与synchronized
    实现任意两个数的互换
    增删改查+部分前段内容
    Hibernate知识点小结汇总
    Spring知识点小结(一)
    JDBC相关
    Redis工具之Jedis
    Hibernate知识点小结(四)--JPA
    Hibernate知识点小结(三)-->一对多与多对多配置
    Hibernate知识点小结(二)
  • 原文地址:https://www.cnblogs.com/tang-s/p/9674732.html
Copyright © 2011-2022 走看看