2015-11-13 140 views
0

我是Python新手和正則表達式。我在網上找到的所有例子看起來都很模糊和模糊。例如,在這幾個條目中。Python正則表達式

 2016-01-15T11:40:00-08:00 Valedictorian candidates meet for instructions 
    2016-02-26T15:05:00-08:00 Valedictorian written submissions due 
    2016-03-17 St. Patrick's Day 
    2016-03-25 Good Friday 
    2016-03-27 Easter Sunday 

我希望最終結果與最後3個條目類似。 (刪除時間,由TXX:XX:XX-XX:XX指出) 同時還保留摘要。 如果任何人都可以告訴我如何在python中以簡單的方式對此進行編程,或者給我一些指針,那將非常感謝。

編輯: 數據被存儲在,將其通過蟒輸出以及一個簡單的.txt文件,作爲Python程序抓住在上面的輸出從谷歌日曆值。但我想要在其中包含正則表達式來刪除時間格式。 另外。就我所知,Google不允許刪除時間/將其放入其他時間格式。

EDIT2: 所有參賽作品都在提前output.txt的

感謝。用空字符串

T(?:\d+(?:-\d+)?:){3}\d+ 

-

+0

你必須證明這些數據如何被存儲,也許到目前爲止,並這樣你試過什麼一些代碼。 –

+3

你也可以在不使用正則表達式的情況下執行此操作,而是使用字符串切片,因爲要刪除的字符似乎位於特定索引處 –

回答

0
>> import re 
>> value = """2016-01-15T11:40:00-08:00 Valedictorian candidates meet for instructions 
... 2016-02-26T15:05:00-08:00 Valedictorian written submissions due 
... 2016-03-17 St. Patrick's Day 
... 2016-03-25 Good Friday 
... 2016-03-27 Easter Sunday 
... """ 

>> re.sub(r'T[\d:-]+ ', ' ', v) 

"2016-01-15 Valedictorian candidates meet for instructions\n2016-02-26 Valedictorian written submissions due\n2016-03-17 St. Patrick's Day\n2016-03-25 Good Friday\n2016-03-27 Easter Sunday\n" 
+0

查看結果。你只返回文本的最後一個單詞,而不是整個文本。 – MattDMo

+0

謝謝你指出。我已經更新了答案:-)。 – pygeek

0

您可以替換這個正則表達式匹配項(其中表示時間)。
Regex explanation here

的代碼應該是這樣的 -

In [13]: s='''2016-01-15T11:40:00-08:00 Valedictorian candidates meet for instructions 
2016-02-26T15:05:00-08:00 Valedictorian written submissions due 
2016-03-17 St. Patrick's Day 
2016-03-25 Good Friday 
2016-03-27 Easter Sunday''' 

In [14]: import re 

In [15]: new_str = re.sub(r'T(?:\d+(?:-\d+)?:){3}\d+', '', s) 

In [16]: print new_str 
2016-01-15 Valedictorian candidates meet for instructions 
2016-02-26 Valedictorian written submissions due 
2016-03-17 St. Patrick's Day 
2016-03-25 Good Friday 
2016-03-27 Easter Sunday