假设我有一个音频文件名列表(它可以是任何带有连续数字的字符串列表),它们具有不同的命名方案,但它们都在其文件名中包含轨道编号。
我想提取不断变化的数字。
示例 1
Fooband 41 - Live - 1. Foo Title
...
Fooband 41 - Live - 11. Another Foo Title
期望的结果
数字列表:1,2,3,...,11
示例 2
02. Barband - Foo Title with a 4 in it
05. Barband - Another Foo Title
03. Barband - Bar Title
...
17. Barband - Yet another Foo Title
期望的结果
数字列表:2,5,3,...,17
由于索引号的位置不固定,我(认为)我不能在那里使用正则表达式。
我有的
- 找到字符串的共同前缀和后缀并将其删除
- 查看字符串的左侧/右侧是否有数字
- 使用该数字获取索引
但是有一个问题:如果我找到Example 1的公共前缀,那么公共前缀将是
Fooband 41 - Live - 1
, 所以1
会丢失(对于像Song X - 10, Song X - 11, ...)
.
问题
什么是检测和提取字符串列表中不断变化的数字(在相似位置)的好方法?
我正在使用 Python(这对这个问题并不重要)
如果我也能检测到罗马数字,那将是一个奖励,但我怀疑这会困难得多。