正则表达式删除文件名的一部分

正则表达式删除文件名的一部分

操作系统:Windows 10 工具:PowerRename

我需要删除文件名中的 # 符号和数字 IE:

ABC 2020 Sec. Fund - 2021 - # 1 Doe, John.pdf

Doe, John - ABC 2020 Sec. Fund - 2021.pdf

使用这个表达式:|

/(^[^#]*)-(.*$)

还有这个替换:

$2 $1

我得到以下信息:

ABC 2020 Sec. Fund - 2021 - # 1 Doe, John.pdf

成为

# 1 Doe, John ABC 2020 Sec. Fund - 2021.pdf 

其中有多个文件需要重命名。

我需要确保姓氏之前的所有内容都被删除。每次我添加这个表达式时它都会中断。我不确定我遗漏了什么。

答案1

我建议以下正则表达式:

(.*) - ([0-9]+) - # [0-9]+ (.*).pdf

采用以下替换模式:

$3 - $1 - $2 .pdf

解释:

(.*) -匹配所有字符,直到第一个-。之前的字符-被捕获在第一组中

([0-9]+)获取第一个和第二个之间的所有数字-,并将其放入第二组中

# [0-9]+ (.*).pdf获取符号#后跟一个或多个数字之间的所有字符,.pdf并将其捕获到第三组中

请点击此处:

https://regex101.com/r/Fx5R6L/1

答案2

因此我需要添加一个“第 4”组来添加表单类型:

K1、M1、F3、ECT

ABC 2020 证券基金 - 2021 K1 - # 1 Doe, John.pdf

IE: (。?) - ([0-9]+)([0-9a-zA-Z]+) - #[0-9]+(.?).pdf

会员:$4 $2 $3 - $1

哪些会发生变化:ABC 2020 目标证券基金 - 2021 K1 - # 1 Doe, John.pdf 进入 Werner, Joseph K1 - 2021 ABC 2020 目标证券基金

我认为你可以将每个字符分成自己的组,然后将它们放在任何括号之外以排除字符。

@S. Brottes——非常详细的解释,谢谢。

相关内容