python中的正则表达式语法

时间:2013-03-15 03:15:22

标签: regex python-2.7

我尝试编写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

并且输出始终为

我的txt就像图片一样: enter image description here

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

我的python是python 2.7.2.my os是windows xp sp3。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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);