我使用一个RegexRenamer来重命名一些文件使用regex匹配&替换;
不幸的是,本教程没有涵盖任何接近我想做的事情,我也不太擅长理解regex是如何工作的。我主要想做的是用下面的模式重命名一些文件。
艺人名曲名
杰克逊,迈克尔-我们是世界
最终的结果应该是:
迈克尔·杰克逊-我们就是世界。
对于特写歌曲,我有一些例外,但是第一个例子的代码肯定会让我在谷歌上搜索几个小时后的一天。
例外:
杰克逊,迈克尔和阿肯-握住我的手
应该是
迈克尔杰克逊和阿肯-握住我的手
发布于 2014-01-12 21:00:45
Regex:
(\w+),\s+(\w+)替换:
$2 $1现场演示#1
对于多次发生:
(?:(\w+),\s+(\w+))+现场演示#2
如果歌曲名称中可能也有逗号,,那么请使用以下命令:
(\w+),\s+(\w+)(?=.*?-)发布于 2014-01-12 20:22:06
你可以用这样的东西:
^([\w -]+?),\s+([\w -]+)\s+([&\w ]+)?\s*-\s+(.*)$示例:http://regex101.com/r/pZ5fP6
发布于 2014-01-12 20:28:09
Regex是很难的,特别是当你是新手的时候。试试这个:
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"注意,一些regex字符需要转义,我用双反斜杠对它们进行了转义,就像在大多数编程语言中所做的那样。如果您只需要一个反斜杠,请使用单个反斜杠,但请注意,无论换行符是什么,您都需要替换\n。
基本上,这是匹配两个逗号分隔的字母单词,分组为$1和$2。[a-zA-Z]+的意思是匹配一个或多个字母字符。括号使它捕获任何匹配项,这样我们就可以稍后将其放入替换项中。它交换了这些名字。然后,它捕获任何额外的东西,在破折号前,以3美元,并追加。这就像组1和组2,除了它还包括&字符和空格,而且它有*而不是+,所以它匹配0或更多的字符。(额外的部分可能在也可能不在那里)。最后,它在$4中捕获了歌曲名并追加了该名称。我以为所有的歌曲名称都只包含字母和空格。如果您的歌曲名称包含任何其他内容,您将需要添加它。
免责声明:此正则表达式未经测试,可能包含错误。
https://stackoverflow.com/questions/21079740
复制相似问题