쉼표로 구분된 알 수 없는 두 단어의 순서를 바꾸는 정규 표현식

쉼표로 구분된 알 수 없는 두 단어의 순서를 바꾸는 정규 표현식

ReNamer 정규 표현식을 사용하여 작성자 이름을 사용하는 폴더 이름을 바꾸려고 합니다. 다음과 같이 설정되어 있으므로 (쉼표 빼기) LastName, FirstName로 변경해야 합니다 .FirstName LastName

ReNamer 정규식 사용은 한 줄에서는 Expression으로 설정되고 두 번째 줄에서는 바꾸기로 설정됩니다. 이 경우에는 입력 다음 출력이라고 가정합니다. 여기에서 여러 가지 솔루션을 시도했지만 전혀 작동하지 않았습니다. 나는 정규식의 극단적인 기본 사항을 거의 이해하지 못하므로 모든 도움을 주시면 감사하겠습니다.

파일 및 폴더 이름 바꾸기 프로그램인 ReNamer에 따르면 정규식은 내가 필요한 작업을 수행할 수 있는 여러 선택 사항 중 유일한 옵션입니다. 다른 사이트에서 누군가의 제안을 시도했습니다. 표현식 줄에 를 입력한 ([^,]*), (.)다음 바꾸기 줄에 를 입력했습니다 \2 \1. 결과 Duncan, Dave는 로 바뀌었습니다 2 1.

답변1

ReNamer는 모르지만 정규식 논리를 따르면 작동합니다.

From: "^([^,]*), (.*)"
To  : "\2 \1"

설명:

  • 초기는 ^'표현의 시작'을 의미합니다.
  • 대괄호 ()는 기억해야 할 표현식의 일부를 나타내며 및 대체에 사용할 수 \1있습니다 \2.
  • [^,]*쉼표를 제외한 모든 문자와 일치합니다( ^이 문맥에서 는 '일치하지 않음'을 의미함).
  • .*나머지 모든 문자와 일치
  • 첫 번째 괄호 안의 표현은 귀하 LastName이고 두 번째 괄호 안의 표현은 귀하입니다.FirstName

답변2

다음을 수행해야 합니다.

:%s/\(^.*\,*\).*\(\,.*$\)/\2 \1/g

\일부 구두점 문자의 경우 VI/VIM 앞에 추가해야 한다는 점을 기억하십시오 .

산출:

, 이름 성

관련 정보