Powershell 使用 RegEx 对文件名不规则模式进行重命名

Powershell 使用 RegEx 对文件名不规则模式进行重命名

我在目录中的文件名具有不同的开头字符串,我希望删除这些字符串并仅保留字母字符+文件扩展名:

[例子]

1-09. 但不适合我.mp3
1-11. 夏日时光.mp3
1-12. 我的风趣情人.mp3
13. 印第安纳 (回到印第安纳的家).mp3
2-02 我爱你.mp3
2-05 有你回家真好.mp3
2-11. 雾天.mp3

我看到的唯一模式是 RegEx 应该删除直到第一个字母字符的所有字符。

[期望输出]

但不是我.mp3
夏日时光.mp3
我的有趣情人.mp3
印第安纳(回到印第安纳的家).mp3
我爱你.mp3
回家见你真好.mp3
雾天.mp3

Powershell 应该是什么样子来实现这一点?

我有过类似的想法,但是我对 RegEx 的了解不够多,无法实现我的目标。

foreach ($file in (get-childitem *.mp3).name) { Rename-Item $file ($file -replace '^[^-]*-\s*') }

谢谢

答案1

使用:^\d+(?:-\d+)?\.?并且替换为无。

解释:

^           # beginning of line
    \d+         # 1 or more digits
    (?:         # non capture group
        -           # hyphen
        \d+         # 1 or more digits
    )?          # end group, optional
    \.?         # optional dot
                # a space

演示与说明

相关内容