问题描述
我有一组具有不同长度名称的文件,格式为:aaaa-1234-filename.zip、aaaa-12345-filename-still-filename.zip、aaaa-123456-filename.zip、aaaa-1234567-文件名-仍然-文件名.zip。
我想去掉这些文件名的第一部分,并删除包括第二个 - 在内的所有内容。我曾尝试通过 PowerShell,但 Rename-Item -NewName 似乎仅对删除名称的标准化部分(例如 aaaa-)有用,而不对名称的可变长度部分有用。
我是否遗漏了 PowerShell 中的某些内容,或者是否有更好、更简单的方法来执行此任务?
解决方法
有几种方法可以做到这一点:
-
'\d+'
:匹配所有数字, -
'(?<=-).*?(?=-)'
:使用-
分隔符分割, -
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'