カンマで区切られた2つの未知の単語の順序を逆にする正規表現

カンマで区切られた2つの未知の単語の順序を逆にする正規表現

ReNamer 正規表現を使用して、作成者名を使用するフォルダー名を逆にしようとしています。 として設定されているので、 (カンマを除いて)LastName, FirstNameに変更する必要があります。FirstName LastName

ReNamer では、正規表現の使用は、1 行目に Expression、2 行目に Replace として設定されます。この場合、入力してから出力することを想定します。ここからいくつかの解決策を試しましたが、まったく機能しませんでした。正規表現のごく基本的な部分しか理解していないため、どのような助けでも大歓迎です。

ファイルとフォルダの名前変更プログラム ReNamer によると、regex はいくつかの選択肢の中で、必要な機能を果たす唯一のオプションです。別のサイトの誰かの提案を試してみました。式行に と入力し([^,]*), (.)、置換行に と入力しました\2 \1。結果はDuncan, Daveに変わりました2 1

答え1

ReNamer については知りませんが、正規表現のロジックに従えば、次のように動作するはずです:

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

説明:

  • initial は^「表現の始まり」を意味します
  • 括弧は、式の中で覚えておくべき部分を示しており、や()として置き換えて使用できます。\1\2
  • [^,]*カンマまでの文字に一致しますが、カンマは含みません(^この文脈では「一致しない」という意味です)
  • .*残りの文字すべてに一致する
  • 最初の括弧で囲まれた式はあなたのものでLastName、2番目の括弧で囲まれた式はあなたのものですFirstName

答え2

次のようにしてください:

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

\VI/VIM では、一部の句読点文字を前に追加する必要があることに注意してください。

出力:

、 名前苗字

関連情報