首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索和替换模式-正则表达式模式

搜索和替换模式-正则表达式模式
EN

Stack Overflow用户
提问于 2014-01-12 20:12:55
回答 3查看 100关注 0票数 0

我使用一个RegexRenamer来重命名一些文件使用regex匹配&替换;

不幸的是,本教程没有涵盖任何接近我想做的事情,我也不太擅长理解regex是如何工作的。我主要想做的是用下面的模式重命名一些文件。

艺人名曲名

杰克逊,迈克尔-我们是世界

最终的结果应该是:

迈克尔·杰克逊-我们就是世界。

对于特写歌曲,我有一些例外,但是第一个例子的代码肯定会让我在谷歌上搜索几个小时后的一天。

例外:

杰克逊,迈克尔和阿肯-握住我的手

应该是

迈克尔杰克逊和阿肯-握住我的手

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-12 21:00:45

Regex:

代码语言:javascript
复制
(\w+),\s+(\w+)

替换:

代码语言:javascript
复制
$2 $1

现场演示#1

对于多次发生:

代码语言:javascript
复制
(?:(\w+),\s+(\w+))+

现场演示#2

如果歌曲名称中可能也有逗号,,那么请使用以下命令:

代码语言:javascript
复制
(\w+),\s+(\w+)(?=.*?-)
票数 0
EN

Stack Overflow用户

发布于 2014-01-12 20:22:06

你可以用这样的东西:

代码语言:javascript
复制
^([\w -]+?),\s+([\w -]+)\s+([&\w ]+)?\s*-\s+(.*)$

示例:http://regex101.com/r/pZ5fP6

票数 0
EN

Stack Overflow用户

发布于 2014-01-12 20:28:09

Regex是很难的,特别是当你是新手的时候。试试这个:

代码语言:javascript
复制
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中捕获了歌曲名并追加了该名称。我以为所有的歌曲名称都只包含字母和空格。如果您的歌曲名称包含任何其他内容,您将需要添加它。

免责声明:此正则表达式未经测试,可能包含错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21079740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档