我正在使用RegexRenamer以使用regex match& replace重命名某些文件;
不幸的是,该教程没有涵盖任何接近我想做的事情,也不太了解正则表达式是如何工作的。 我基本上想要做的是用以下模式重命名一些文件。
艺术家,姓名 - 歌曲名称
杰克逊,迈克尔 - 我们是世界
最终结果应为:
迈克尔杰克逊 - 我们是世界。
我对这首特色歌曲的规则有一些例外,但是第一个例子的代码肯定会让我的日常用户用谷歌搜索。
例外:
杰克逊,迈克尔&阿肯 - 握住我的手
应该是
迈克尔杰克逊&阿肯 - 握住我的手
答案 0 :(得分:0)
答案 1 :(得分:0)
正则表达式很难,特别是如果你是新手。试试这个:
Find: "([a-zA-Z]+), ([a-zA-Z]+)([a-zA-Z& ]*) \\- ([a-zA-Z ]+)\n"
/\ group 1. /\ group 2. /\ 3. /\ 4
Replace: "$2 $1 $3 - $4"
请注意,某些正则表达式字符需要进行转义,并且我使用双反斜杠转义它们,就像在大多数编程语言中一样。如果你只需要一个反斜杠,请使用一个反斜杠,但请注意,你需要用换行符替换\ n。
基本上它的作用是匹配两个以逗号分隔的字母单词,分为1美元和2美元。 [a-zA-Z]+
表示匹配一个或多个字母字符。括号使它捕获任何匹配,以便我们可以在以后替换它。它交换了这些名字。然后它在3美元之前捕获任何额外的东西,然后追加。这就像第1组和第2组一样,除了它还包括&字符和空格,它有*而不是+,所以它匹配0或更多字符。 (额外部分可能存在也可能不存在)。最后,它以4美元的价格捕获歌曲名称并追加。我假设所有歌曲名称只包含字母字符和空格。如果您的歌曲名称包含其他内容,则需要将其添加。
免责声明:此正则表达式未经过测试,可能包含错误。
答案 2 :(得分:0)
正则表达式:
(\w+),\s+(\w+)
替换:
$2 $1
多次出现:
(?:(\w+),\s+(\w+))+
如果歌曲名称中也可能包含逗号,
,请使用:
(\w+),\s+(\w+)(?=.*?-)