如果在正则表达式中? (仅当文件类型为 xxx 时才替换文件名中的内容)
IF in a Regex expresion? (replace something in file names ONLY if file type is xxx)
好吧,我知道一些正则表达式,但这在愚弄我...
我通常每个月都会管理数百个提交的文件,并且必须进行一些检查和替换,然后才能在我们的 Intranet 中再次使用它们...
我在 Windows 上通过一个文件重命名程序在本地进行此操作,该程序可以执行 pcre 但一次只能执行一行,因此所有内容都应该在同一个正则表达式中。
问题是我只想在文件类型为 xxx 时进行替换。
例如,仅当扩展名是 jpg|jpeg|jpe 时才替换下划线的所有空格
所以
this is a test.jpg => this_is_a_test.jpg
this is a another test.jpe => this_is_a_another_test.jpe
this is a test.docx => this is a test.docx
Jpg 是一个示例,我对每个扩展名进行了不同的替换,而不是对所有扩展名进行了不同的替换,因此在 .docx 中替换上述示例中的空格的内容将是错误的...
可以吗???
你说你在 Windows,但是你有 WSL(Bash for Linux)或类似的东西吗?如果是这样,这里有一个从 Linux 命令行执行此操作的快速方法:
rename 's/ /_/g;' *.jpg *.jpe
解释:rename
在指定文件的名称上运行给定的 Perl 脚本。
你需要找到spaces,然后向前看扩展名:
(?=.*\.jp(?:g|e)$)
注意前导space。
好吧,我知道一些正则表达式,但这在愚弄我...
我通常每个月都会管理数百个提交的文件,并且必须进行一些检查和替换,然后才能在我们的 Intranet 中再次使用它们...
我在 Windows 上通过一个文件重命名程序在本地进行此操作,该程序可以执行 pcre 但一次只能执行一行,因此所有内容都应该在同一个正则表达式中。
问题是我只想在文件类型为 xxx 时进行替换。
例如,仅当扩展名是 jpg|jpeg|jpe 时才替换下划线的所有空格
所以
this is a test.jpg => this_is_a_test.jpg
this is a another test.jpe => this_is_a_another_test.jpe
this is a test.docx => this is a test.docx
Jpg 是一个示例,我对每个扩展名进行了不同的替换,而不是对所有扩展名进行了不同的替换,因此在 .docx 中替换上述示例中的空格的内容将是错误的...
可以吗???
你说你在 Windows,但是你有 WSL(Bash for Linux)或类似的东西吗?如果是这样,这里有一个从 Linux 命令行执行此操作的快速方法:
rename 's/ /_/g;' *.jpg *.jpe
解释:rename
在指定文件的名称上运行给定的 Perl 脚本。
你需要找到spaces,然后向前看扩展名:
(?=.*\.jp(?:g|e)$)
注意前导space。