我尝试编写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就像图片一样:
有什么问题?请帮助我。很多。
我的python是python 2.7.2.my os是windows xp sp3。
答案 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);