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

    官方教程0:https://docs.python.org/3.4/howto/regex.html#regex-howto
    官方教程1:https://docs.python.org/3.4/library/re.html?highlight=re#

    #!/usr/bin/env python
    # coding: utf-8
    #copyRight by heibanke
    
    import re
    text = 'c++ python2 python3 perl ruby lua java javascript php4 php5 c'
    
    #match,search,findall,split,sub
    re.match(r'c++',text)
    re.match(r'c++',text)
    re.match(r'java',text)
    re.search(r'java',text)
    
    print re.findall(r'python',text)
    print re.split(r' perl ',text)
    print re.sub(r'ruby','fortran',text)
    
    # +   1-inf
    # *   0-inf
    # ?   0-1, 
    # []  or
    # {}  repeat
    # [^] not
    print re.findall(r'p+',text)
    print re.findall(r'p[a-zA-Z]+',text)  #{1,}
    print re.findall(r'c[a-zA-Z]*',text)  #{,inf}
    print re.findall(r'c[^a-zA-Z]*',text)  #{,inf}
    print re.findall(r'c[a-zA-Z]?',text)  #{,1}
    
    # |   or
    print re.findall(r'[pj][a-zA-Z]+',text)  #{,inf}
    print re.findall(r'p[^0-9]+|j[a-zA-Z]+',text)   
    print re.findall(r'p[^0-9 ]+|j[a-zA-Z]+',text) 
    
    # ^   start
    # $   end
    # .   except 
    
    print re.findall(r'^c..',text)
    print re.findall(r'c+',text)
    print re.findall(r'c++',text)
    print re.findall(r'c$',text)
    
    # w  [a-zA-Z0-9_], W [^a-zA-Z0-9]
    # d  [0-9], D
    # s  [ 	
    
    fv], S
    print re.findall(r'pw+',text)
    print re.findall(r'pw+d',text)
    print re.findall(r'pw+[0-9]',text)
    print re.findall(r'pw{5,9}',text)
    
    #   word boundary
    # B  not 
    # A  input start, ^
    #   input end, $
    print re.findall(r'p[^0-9]',text)
    print re.findall(r'p[^0-9]',text)
    
    # *?  0~inf non-greedy
    # +?  1~inf non-greedy
    print re.findall(r'p[^0-9]*',text)
    print re.findall(r'p[^0-9]*?',text)
    print re.findall(r'p[^0-9]+',text)
    print re.findall(r'p[^0-9]+?',text)
    
    # ()  group
    # (?P<name>pattern)
    a=re.search(r'(p[a-zA-Z]+)([0-9])','python2')
    print a.group(1), a.group(2)
    
    a=re.search(r'(?P<name>p[a-zA-Z]+)(?P<version>[0-9])','python2')
    print a.group('name'), a.group('version')
    print a.groupdict()
    
    pattern = re.compile(r'(?P<name>p[a-zA-Z]+)(?P<version>[0-9])')
    results = pattern.search('python2')
    print results.groupdict()
    results = pattern.search('python3')
    print results.groupdict()
    results = pattern.search('php4')
    print results.groupdict()
    
    #########################################
    for t in text.split(' '):
        results = pattern.search(t)
        if results:
          print results.groupdict()
    
  • 相关阅读:
    session监听
    Ubuntu上安装MongoDB(转)
    JAVA中的集合(转)
    Iterator的用法(转)
    PHPExcel常用方法汇总(转)
    MongoDB的安装及在PHP中的配置Windows版
    [转载]使用FastReport 3.0及以上版本创建动态报表的几个技巧
    FastReport
    ZeosLib
    [转载]FastReport问题整理
  • 原文地址:https://www.cnblogs.com/cxy229/p/4836750.html
Copyright © 2011-2022 走看看