Регулярное выражение для перемещения начала строки в конец в Notepad ++ - PullRequest
3 голосов
/ 13 января 2012

У меня есть такой текстовый файл:

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 ]

8 голосов
/ 13 января 2012

За исключением корпуса это должно работать (хотя и протестировано в блокноте для программистов ...):

Найти шаблон:

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

Заменить шаблон:

\3, \2, \1
4 голосов
/ 13 января 2012

Это сработало для меня, используя sed (я думаю, это также работает в блокноте ++, поскольку, вероятно, поддерживает регулярные выражения 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.

Более подробную информацию о escape-последовательностях вы можете найти здесь .

...