Python正则表达式

问题描述:

我是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

你也可以在不使用正则表达式的情况下执行此操作,而是使用字符串切片,因为要删除的字符似乎位于特定索引处 –

>> 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

您可以替换这个正则表达式匹配项(其中表示时间)。
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