Estou tentando usar expressões regulares ReNamer para reverter nomes de pastas que usam nomes de autores. Eles estão configurados como LastName, FirstName
e preciso alterá-los para FirstName LastName
(menos a vírgula).
No ReNamer, o uso de expressões regulares é configurado como Expressão em uma linha e Substituir na segunda. Presumo que neste caso entre Entrada e depois Saída. Eu tentei várias soluções daqui, mas não consegui fazer nada funcionar. Eu mal entendo os conceitos básicos de regex, então toda e qualquer ajuda é muito apreciada.
De acordo com o programa de renomeação de arquivos e pastas, ReNamer, regex é a única opção entre várias opções que farão o que eu preciso. Tentei a sugestão de alguém de outro site. Na Linha de Expressão digitei ([^,]*), (.)
e na Linha de Substituição digitei \2 \1
. O resultado mudou Duncan, Dave
para 2 1
.
Responder1
Não conheço o ReNamer, mas seguindo a lógica regex isso deve funcionar:
From: "^([^,]*), (.*)"
To : "\2 \1"
Explicação:
- inicial
^
significa 'início da expressão' - os
()
colchetes indicam parte da expressão que deve ser lembrada e pode ser usada na substituição como\1
e\2
. [^,]*
corresponde a todos os caracteres até, mas não incluindo, uma vírgula (^
neste contexto significa 'não correspondente').*
corresponde a todos os caracteres restantes- a primeira expressão entre colchetes é sua
LastName
e a segunda expressão entre colchetes é suaFirstName
Responder2
Você deve fazer isso:
:%s/\(^.*\,*\).*\(\,.*$\)/\2 \1/g
Lembre-se que para alguns caracteres de pontuação é necessário adicionar \
antes no VI/VIM.
Saída:
, Primeiro nome, ultimo nome