如何使用正则表达式从Python中的字符串获取关键信息?

时间:2018-08-29 07:33:49

标签: python

我有一个字符串,我要从中提取密钥信息:

gbk_kings_common_20171201_20180131_66000.0k_2017-12-01_TO_2018-01-31_id12_1277904128.csv

即,我想找到以下内容:

  1. 文件标识符,例如gbk_kings_common_20171201_20180131
  2. 尺寸,例如330.0k
  3. 日期,例如2017-12-01_TO_2018-02-31
  4. ID的类型,例如id12_12771231518

但是我很难编译正则表达式,因为文件标识符的长度总是可以变化的,尽管其余信息用逗号分隔时是相当固定的。

1 个答案:

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