我有一个字符串,我要从中提取密钥信息:
gbk_kings_common_20171201_20180131_66000.0k_2017-12-01_TO_2018-01-31_id12_1277904128.csv
即,我想找到以下内容:
gbk_kings_common_20171201_20180131
330.0k
2017-12-01_TO_2018-02-31
id12_12771231518
但是我很难编译正则表达式,因为文件标识符的长度总是可以变化的,尽管其余信息用逗号分隔时是相当固定的。
答案 0 :(得分:4)
您可以使用模式r'(.*)_(.*)_([\d-]+_TO_[\d-]+)_(id[\d_]*)
搜索您的字符串。
>>> import re
>>> s = "gbk_kings_common_20171201_20180131_66000.0k_2017-12-01_TO_2018-01-31_id12_1277904128.csv"
>>> sre = re.search(r'(.*)_(.*)_([\d-]+_TO_[\d-]+)_(id[\d_]*)', s)
>>> file_id, size, date, type_id = sre.groups()
>>> print (file_id, size, date, type_id)
gbk_kings_common_20171201_20180131 66000.0k 2017-12-01_TO_2018-01-31 id12_1277904128