-2

次の文字列では、時間に関する正規表現をどのように記述できますか。出力はタイムスタンプのみである必要があります。

 l1=May 30, 2012 at 8:13 AM  Comment · 1Like Unlike · Bookmark Unbookmark
 l2=yesterday at 12:13 AM  2Comment  Like Unlike · Bookmark Unbookmark
 l3=Two days ago at 01:18 AM  Comment · 5Like Unlike · Bookmark Unbookmark
 l4=Two days ago at 15:54 PM  Comment · Like Unlike · Bookmark Unbookmark

EDIT

 l5=Two days ago at 15:54:51 PM · Comment · Like Unlike · Bookmark Unbookmark

出力:

 array1 = [May 30, 2012 at 8:13 AM ,yesterday at 12:13 AM ,Two days ago at 01:18 AM,Two days ago at 15:54 PM]

 array2=[Comment · 1Like Unlike · Bookmark Unbookmark,2Comment · Like Unlike · Bookmark Unbookmark,Comment · 5Like Unlike · Bookmark Unbookmark,Comment · Like Unlike · Bookmark Unbookmark]

編集:

p_date = re.compile(r'(\d{1,2}[:]\d{1,2}) but i wasnt sure how to do it if the timestamp was also like 23:12:29 
4

2 に答える 2

2
>>> import re
>>> pattern = r'l\d+=(.*?)·(.*)'
>>> l1 = []
>>> l2 = []
>>> for line in s.split('\n'):
    m = re.match(pattern, line)
    if m:
        l1.append(m.groups()[0])
        l2.append(m.groups()[1])


>>> l1
['May 30, 2012 at 8:13 AM ', 'yesterday at 12:13 AM ', 'Two days ago at 01:18 AM ', 'Two days ago at 15:54 PM ']
>>> l2
[' Comment \xb7 1Like Unlike \xb7 Bookmark Unbookmark', ' 2Comment \xb7 Like Unlike \xb7 Bookmark Unbookmark', ' Comment \xb7 5Like Unlike \xb7 Bookmark Unbookmark', ' Comment \xb7 Like Unlike \xb7 Bookmark Unbookmark']
>>> 

EDIT : のマッチングを追加して、マッチングl1=から削除しました。

于 2012-07-04T08:09:58.470 に答える
0

出力を「.」で分割できます。、入力形式が一貫している場合。異なる形式のタイムスタンプ文字列を識別するために正規表現を適用することは、多忙な作業になる場合があります。

于 2012-07-04T08:05:02.483 に答える