Python之正则表达式进阶篇

来源:互联网 发布:sql select 结果 左链 编辑:程序博客网 时间:2024/06/05 16:49

正则表达式里面最恶心的就是‘\’了。下面第一种是没有使用r的写法。

# -*- coding: utf-8 -*-import sysimport os  # 目录操作import re  # 正则表达式mydir = 'F:\Code_Practice\Python_Project\NAO_PRO'if __name__ == "__main__":    # 将正则表达式编译成Pattern对象     pattern = re.compile('F:\\\\Code_Practice\\\\Python_Project\\\\NAO_PRO(\s+)')    pattern1 = re.compile("^(F:\\\\Code_Practice\\\\Python_Project\\\\NAO_PRO\\\\)(\d*)")    res1 = pattern1.search('F:\\Code_Practice\\Python_Project\\NAO_PRO\\7941520')    if res1:        print res1.group(0),res1.group(1),res1.group(2)    test_str = 'F:\\Code_Practice\\Python_Project\\NAO_PRO\\sdfdd'    res = pattern.search(test_str)    if res:        result1 = res.group(0) + "\n"        print result1    else:        print 'Gosh\n'    print test_str    # print pattern

下面一个例子我觉得很棒的东西,就是遍历某个目录,把里面的文件都取出来。

# -*- coding: utf-8 -*-import sysimport os  # 目录操作import re  # 正则表达式mydir = 'F:\Code_Practice\Python_Project\NAO_PRO'if __name__ == "__main__":#   将正则表达式编译成Pattern对象     pattern = re.compile(r'^(F:\\Code_Practice\\Python_Project\\NAO_PRO\\)(\w+).(\w+)')#   pattern = re.compile('F:\\\\Code_Practice\\\\Python_Project\\\\NAO_PRO\\\\(\w+).(\w+)')#   re.compile(r'^(F:\\Code_Practice\\Python_Project\\NAO_PRO\\)(\w+).(\w+)')#   和re.compile(r'F:\\Code_Practice\\Python_Project\\NAO_PRO\\(\w+).(\w+)') 不一样的地方是加了^之后#   group(1)就是^里面的内容,否则group(1)是(\w+)里面的东西#   在这里的话有没有r还是有区别的,有r的话那么'\'只要'\\',否则就是'\\\\'    pattern1 = re.compile(r"^(F:\\\\Code_Practice\\\\Python_Project\\\\NAO_PRO\\\\)(\w+).(\w+)")    res = pattern1.search(r'F:\\Code_Practice\\Python_Project\\NAO_PRO\\7941520.sddd')    if res:        print res.group(2) +'.'+res.group(3)    else:        print 'test fail'#   test_str = 'F:\\Code_Practice\\Python_Project\\NAO_PRO\\sdfdd'#   res = pattern.search(test_str)#   if res:#       result1 = res.group(1) + "\n"#       print result1#   else:#       print 'Gosh\n'#   print test_str    # print pattern    for filename in os.listdir(mydir):        filepath = os.path.join(mydir, filename)        if os.path.isfile(filepath):            print str(filepath)            s1 = pattern.search(str(filepath))              # m = re.match(r'^(F:\\Code_Practice\\Python_Project\\NAO_PRO\\)+\S+)', filepath)            if s1:                  result = s1.group(1) + '.' + s1.group(2)                print result
0 0