使用正则表达式隔离文件名中的信息

时间:2015-03-10 20:28:53

标签: python regex

我有各种格式的文件;

file_name_twenty_135032952.txt

其中file_name_twenty是内容的描述,13503295是id。 我想要两个不同的正则表达式;一个用于获取文件名中的描述,另一个用于获取id。

以下是文件名遵循的其他规则:

  • 文件名永远不会包含空格或大写字符
  • ID将始终直接在扩展名
  • 之前
  • ID将始终遵循下划线
  • 描述有时可能包含数字;例如,在此文件名中:part_1_of_file_324980332.txtpart_1_of_file是说明,324980332是ID。

我已经辛苦劳作了一段时间,似乎无法找出解决这个问题的正则表达式。我正在使用python,因此其正则表达式引擎的任何限制都会随之而来。

1 个答案:

答案 0 :(得分:4)

rsplit一次使用下划线并从id删除扩展程序。

s = "file_name_twenty_13503295.txt"

name, id = s.rsplit(".",1)[0].rsplit("_", 1)

print(name, id)

file_name_twenty 13503295