+ -
当前位置:首页 → 问答吧 → 一个python正则的问题

一个python正则的问题

时间:2011-02-12

来源:互联网

我有一个分析文件的问题,希望哪位大大能帮我一把。
我想分析这个文件,找出我要的条目,但是我不想一行一行的检查,于是有了下边的情况
我要检查的文件如下
  1. Dec 10 2010 00:19:53         test asdasda
  2.         12312973129        123810238129        123810238        31283102
  3. Dec 10 2010 00:19:54        test asdasda
  4.         12312973129        123810238129        123810238        31283102
  5. Dec 10 2010 00:19:54        test asdasda
  6.         12312973129        123810238129        123810238        31283102
  7. Dec 10 2010 00:19:54        test asdasda
  8.         12312973129        123810238129        111111111        31283102
  9. Dec 10 2010 00:19:54        test asdasda
  10.         12312973129        123810238129        123810238        31283102
  11. Dec 10 2010 00:19:54        test asdasda
  12.         12312973129        123810238129        123810238        31283102
  13. Dec 10 2010 00:19:54        test asdasda
  14.         12312973129        123810238129        123810238        31283102
复制代码
我的检查程序如下:
  1. # -*- coding: utf-8 -*-

  2. import re

  3. a = "\S{3} +\d{1,2} +\d{4} +\d{2}:\d{2}:\d{2}.*111111111.*?(?=\S{3} +\d{1,2} +\d{4} +\d{2}:\d{2}:\d{2})"
  4. key = re.compile(a,re.M|re.S)

  5. fp = open("test2.txt",'r')
  6. content = fp.read()

  7. fp.close()

  8. result = key.search(content)

  9. print result.group()
复制代码
返回结果如下:
  1. Dec 10 2010 00:19:53         test asdasda
  2.         12312973129        123810238129        123810238        31283102
  3. Dec 10 2010 00:19:54        test asdasda
  4.         12312973129        123810238129        123810238        31283102
  5. Dec 10 2010 00:19:54        test asdasda
  6.         12312973129        123810238129        123810238        31283102
  7. Dec 10 2010 00:19:54        test asdasda
  8.         12312973129        123810238129        111111111        31283102
复制代码
我想要的结果是:
  1. Dec 10 2010 00:19:54        test asdasda
  2.         12312973129        123810238129        111111111        31283102
复制代码
大家帮我看看吧

作者: frankripple   发布时间: 2011-02-12

本帖最后由 a515200 于 2011-02-13 13:18 编辑

re.findall('(?:.+)(D.+4.+)',string,re.S)
仅仅是匹配你那个规则

作者: a515200   发布时间: 2011-02-13