正则表达式在Notepad ++中将字符串的开头移动到结尾

时间:2012-01-13 10:51:59

标签: regex notepad++ replace

我有一个像这样的文本文件:

marc_webber
john_grisham
rahmin_darfur
firstname_lastname

我希望输出像这样(忘记像“van These”这样的双重名称):

Webber, Marc, marc_webber
Grisham, John, john_grisham
Darfur, Rahmin, rahmin_darfur
LastName, FirstName, firstname_lastname

所以我想将字符串拆分为 _ ,将姓氏移到开头,逗号分隔名字和连接名称到结尾(甚至可以大写第一个字母)。 使用编程语言这很容易,但我想知道是否可以使用 Notepad ++的查找和替换功能与正则表达式
基本上我需要为名字和姓氏创建变量,并在最后再将它们串起来。

2 个答案:

答案 0 :(得分:8)

除了外壳这应该有用(虽然在程序员记事本中测试过......):

查找模式:

((\w+)_(\w+))

替换模式:

\3, \2, \1

答案 1 :(得分:4)

这对我来说使用sed(我想它也适用于notepad ++,因为它可能支持perl正则表达式):

$ sed -r 's/(\w+)_(\w+)/\u\2, \u\1, \0/' file.txt
Webber, Marc, marc_webber
Grisham, John, john_grisham
Darfur, Rahmin, rahmin_darfur
Lastname, Firstname, firstname_lastname

在示例中获取大写的技巧是使用\u

您可以找到有关转义序列here的更多信息。