0

我尝试编写一个python脚本来分析数据txt。我希望脚本做这样的事情:在一行中查找所有时间数据,并比较它们。但这是我第一次编写RE语法。所以我写了一个第一个小脚本。

我的脚本是:

import sys
txt = open('1.txt','r')
a = []
for eachLine in txt:
    a.append(eachLine)
import re
pattern = re.compile('\d{2}:\d{2}:\d{2}')
for i in xrange(len(a)):
    print pattern.match(a[i])
#print a

并且输出始终为None

我的txt就像图片一样: 在此处输入图像描述

有什么问题?请帮助我。多谢。

我的python是python 2.7.2。我的操作系统是windows xp sp3。

4

2 回答 2

0

您没有错过正则表达式中的“:”之一吗?我想你的意思是

re.compile('\d{2}:\d{2}:\d{2}')

其他问题是:

首先,如果要在孔文本中搜索,请使用search而不是match. 其次,要访问您的结果,您需要在搜索返回的匹配对象中调用 group()。

尝试一下:

import sys
txt = open('1.txt','r')
a = []
for eachLine in txt:
    a.append(eachLine)
import re
pattern = re.compile('\d{2}:\d{2}:\d{2}')
for i in xrange(len(a)):
    match = pattern.search(a[i])
    print match.group()
#print a
于 2013-03-15T03:23:57.617 回答
0

我认为您缺少正则表达式中的冒号和点。也可以尝试在整个文本上使用 re.search 或 re.findall。像这样:

import re, sys

text = open("./1.txt", "r").read() # or readlines() to make a list of lines
pattern = re.compile('\d{2}:\d{2}:\d{2}')

matches = pattern.findall(text)

for i in matches:
     print(i);
于 2013-03-15T03:47:00.250 回答