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

标签 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,因此其正则表达式引擎的任何限制都遵循。

最佳答案

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

s = "file_name_twenty_13503295.txt"

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

print(name, id)

file_name_twenty 13503295

关于python - 使用正则表达式隔离文件名中的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28973493/

相关文章:

regex - Sed & 正则表达式 : match between two characters only sometimes successful

java - 替换字符串中 a-z 0-9 和 , 旁边的所有字符

MySql 和正则表达式

java - 如何在 hadoop 中编写和执行 hello world 程序?

带有 NaN 的 Python 线性回归

python - 使用unittest时如何知道每个测试花费的时间?

javascript - JS querySelectorAll 和正则表达式作为选择器

正则表达式模式匹配细化

python - 防止 Predict_generator 打乱批处理

Python:在套接字监听连接时显示消息 'Waiting for player...'