Я пытаюсь использовать регулярные выражения ReNamer для реверсирования имен папок, которые используют имена авторов. Они настроены как LastName, FirstName
и мне нужно изменить их на FirstName LastName
(без запятой).
В ReNamer использование регулярных выражений настроено как Expression на одной строке и Replace на второй. Я предполагаю в этом случае Input, затем Output. Я пробовал несколько решений отсюда, но ничего не смог заставить работать вообще. Я едва понимаю экстремальные основы regex, поэтому любая помощь будет высоко оценена.
Согласно программе переименования файлов и папок ReNamer, regex — единственный вариант из нескольких, который сделает то, что мне нужно. Я попробовал чье-то предложение с другого сайта. В строке выражения я набрал, ([^,]*), (.)
а затем в строке замены я набрал \2 \1
. Результат изменился Duncan, Dave
на 2 1
.
решение1
Я не знаю ReNamer, но следуя логике регулярных выражений это должно работать:
From: "^([^,]*), (.*)"
To : "\2 \1"
Объяснение:
- инициал
^
означает «начало выражения» - скобки
()
указывают часть выражения, которую необходимо запомнить и которую можно использовать при замене как\1
и\2
. [^,]*
соответствует всем символам до запятой, но не включая ее (^
в данном контексте означает «несоответствие»).*
соответствует всем оставшимся символам- первое выражение в скобках — ваше
LastName
, а второе выражение в скобках — вашеFirstName
решение2
Вам следует сделать следующее:
:%s/\(^.*\,*\).*\(\,.*$\)/\2 \1/g
\
Помните, что перед некоторыми знаками препинания в VI/VIM необходимо добавлять символы .
Выход:
, Имя Фамилия