0

データ txt を分析するための python スクリプトを作成しようとしています。スクリプトに次のようなことをさせたい: 1 行ですべての時間データを検索し、それらを比較します。しかし、RE 構文を作成するのはこれが初めてです。 1stに小さなスクリプト。

私のスクリプトは次のとおりです。

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.my osはWindows XP SP3です。

4

2 に答える 2

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 に答える
0

正規表現で「:」の 1 つを見逃していませんか? 私はあなたが意味したと思います

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 に答える