正则表达式来反转用逗号分隔的两个未知单词的顺序

正则表达式来反转用逗号分隔的两个未知单词的顺序

我正在尝试使用 ReNamer 正则表达式来反转使用作者姓名的文件夹名称。它们设置为LastName, FirstName,我需要将它们更改为FirstName LastName(减去逗号)。

在 ReNamer 中,正则表达式的用法设置为一行中的表达式,第二行中的替换。我假设在这种情况下先输入,然后输出。我尝试了这里的几种解决方案,但根本无法解决问题。我几乎不了解正则表达式的基础知识,因此非常感谢任何帮助。

根据文件和文件夹重命名程序 ReNamer,正则表达式是几个选项中唯一能满足我需求的选项。我尝试了另一个网站上某人的建议。在表达式行中我输入了 ,([^,]*), (.)然后在替换行中输入了\2 \1。结果变成Duncan, Dave2 1

答案1

我不知道 ReNamer 但按照正则表达式逻辑这应该可行:

From: "^([^,]*), (.*)"
To  : "\2 \1"

解释:

  • initial^表示‘表达式的开始’
  • 括号()内为需要记住的表达式的一部分,可以像\1和 一样用来替换\2
  • [^,]*匹配所有字符,直到但不包括逗号(^在这种情况下表示“不匹配”)
  • .*匹配所有剩余字符
  • 第一个括号内的表达式是你的LastName,第二个括号内的表达式是你的FirstName

答案2

你应该做这个:

:%s/\(^.*\,*\).*\(\,.*$\)/\2 \1/g

\请记住,在 VI/VIM 中,某些标点符号需要在前面添加。

输出:

, 名字 姓氏

相关内容