【问题标题】:Use regex to isolate information in filename使用正则表达式隔离文件名中的信息
【发布时间】:2015-03-11 04:37:28
【问题描述】:

我有各种格式的文件;

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,因此它的正则表达式引擎的任何限制都会随之而来。

【问题讨论】:

    标签: python regex


    【解决方案1】:

    rsplit 下划线一次并从id 中删除扩展名。

    s = "file_name_twenty_13503295.txt"
    
    name, id = s.rsplit(".",1)[0].rsplit("_", 1)
    
    print(name, id)
    
    file_name_twenty 13503295
    

    【讨论】:

    • 哦。我想我太专注于制作一个忘记拆分的正则表达式。
    • @Maurdekye,拆分应该足够了,因为您的文件名具有重复模式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 2015-11-07
    • 2022-07-20
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多