我的文件名是文件名,如:
"001_-_h_-_hydrogen.2014-09-13.14-27-45.jpg"
我想从文件名中删除使用strftime
创建的日期时间并获取:
"001_-_h_-_hydrogen.jpg"
该功能如下:
def remove_datetime(str):
return str_withoutdatetime
我对Regexes真的很陌生。我怎么能用Python做到这一点?
答案 0 :(得分:1)
您可以使用
形式的正则表达式(\.\d{2,4}(-\d{2}){2}){2}
使用示例
>>> str="001_-_h_-_hydrogen.2014-09-13.14-27-45.jpg"
>>> re.sub(r'(\.\d{2,4}(-\d{2}){2}){2}', '', str)
'001_-_h_-_hydrogen.jpg'
OR
更具体
>>> re.sub(r'(\.\d{2,4}(-\d{2}){2}){2}(?=.jpg)', '', str)
'001_-_h_-_hydrogen.jpg'
它的作用是什么?
\.
与.
匹配,此处与hydrogen
\d{2,4}
匹配最少2个(小时)和最多4个(年份)数字
(-\d{2})
匹配数字2倍的月份和分钟
{2}
量化两次,这也是为了匹配日期/或第二次
{2}
再次为整个tiem量化匹配
(?=.jpg)
检查匹配的字符串是否后跟.jpg
你也可以写一个不那么神秘的其他长正则表达式,如
\.\d{4}(-\d{2}){2}\.\d{2}(-\d{2}){2}(?=.jpg)
与
的目的相同>>> re.sub(r'.\d{4}(-\d{2}){2}\.\d{2}(-\d{2}){2}(?=.jpg)', '', str)
'001_-_h_-_hydrogen.jpg'
答案 1 :(得分:0)
>>> x="001_-_h_-_hydrogen.2014-09-13.14-27-45.jpg"
>>> xnew= re.sub(r'\.\d{4}-\d{2}-\d{2}\.\d{2}-\d{2}-\d{2}', '', x)
>>> xnew
'001_-_h_-_hydrogen.jpg'
另请参阅:Python re