我有一个像这样的文本文件:
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 ++的查找和替换功能与正则表达式。
基本上我需要为名字和姓氏创建变量,并在最后再将它们串起来。
答案 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的更多信息。