我是正则表达式的新手,我现在可以编写表达式来完成大多数简单的文件重命名工作,但这个让我感到困惑。
我只是想把一堆文件名中的deliminator从“ - ”更改为“ - ”,例如:
"Author Name -Series 00 -Title.txt" needs to become:
"Author Name - Series 00 - Title.txt"
"Author_Name -[Series 01] -Title -Genre.txt" needs to become:
"Author_Name - [Series 01] - Title - Genre.txt"
表达式需要能够处理1,2或3“ - ”分隔符,并且必须忽略所有其他连字符,例如“ - ”“ - ”和现有的“ - ”都应该被忽略。例如:
"File_Name1 - Sometext- more-info (V1.0).txt" Should not be changed at all.
它可以在File Renamer中使用,它位于Python中。
答案 0 :(得分:0)
您可以使用positive look-ahead,使用以下模式进行搜索,然后使用正确的字符替换它。 在模式的开头有一个空格。您还可以使用空白区域选择器\s
。
-(?=[^ ])
或使用空格字符\s
:
\s-(?=[^ ])
以下是在JavaScript中测试模式的示例:
// expected:
// "Author Name -Series 00 -Title.txt" ->
// "Author Name - Series 00 - Title.txt"
// "Author_Name -[Series 01] -Title -Genre.txt" ->
// "Author_Name - [Series 01] - Title - Genre.txt"
// "File_Name1 - Sometext- more-info (V1.0).txt" ->
// no change
var regex = / -(?=[^ ])/g;
var texts = [
"Author Name -Series 00 -Title.txt",
"Author_Name -[Series 01] -Title -Genre.txt",
"File_Name1 - Sometext- more-info (V1.0).txt"
];
for(var i = 0; i < texts.length; i++) {
var text = texts[i];
console.log(text, "->", text.replace(regex, ' - '));
}
&#13;