正则表达式查找文件名中 2 个连字符之间的数据

Regular Expression to find data between 2 hyphens in file names

我有一组名称长度不一的文件,格式如下:aaaa-1234-filename.zip, aaaa-12345-filename-still-filename.zip, aaaa-123456-filename.zip, aaaa-1234567-文件名-仍然-filename.zip.

我想去掉这些文件名的第一部分,并删除包括第二个 - 在内的所有内容。我试图通过 PowerShell,但 Rename-Item -NewName 似乎只对删除名称的标准化部分(例如 aaaa-)有用,而不是名称的可变长度部分。

我是否遗漏了 PowerShell 中的某些内容,或者是否有更好、更简单的方法来执行此任务?

有几种方法可以做到这一点:

  1. '\d+':匹配所有数字,
  2. '(?<=-).*?(?=-)':使用-分隔符拆分,
  3. str.split('-'): 使用 - 分隔符拆分。

示例:

(1)

import re
s = 'aaaa-12345-filename-still-filename.zip'
nums = re.findall(r'\d+', s)[0]
# nums = '12345'

(2)

import re
s = 'aaaa-12345-filename-still-filename.zip'
nums = re.findall('(?<=-).*?(?=-)', s)[0]
# nums = '12345'

(3)

import re
s = 'aaaa-12345-filename-still-filename.zip'
nums = s.split('-')[1]
# nums = '12345'