正規表示式反轉以逗號分隔的兩個未知單字的順序

正規表示式反轉以逗號分隔的兩個未知單字的順序

我正在嘗試使用 ReNamer 正規表示式來反轉使用作者姓名的資料夾名稱。它們被設定為LastName, FirstName,我需要將它們更改為FirstName LastName(減去逗號)。

在 ReNamer 中,正規表示式的用法設定為一行上的「表達式」和第二行上的「替換」。我假設在這種情況下輸入然後輸出。我已經從這裡嘗試了幾種解決方案,但根本無法讓任何東西發揮作用。我幾乎不了解正規表示式的極端基礎知識,因此我非常感謝任何和所有幫助。

根據檔案和資料夾重新命名程式 ReNamer,正規表示式是可以滿足我需要的多種選擇中的唯一選項。我嘗試了另一個網站上某人的建議。在表達式行中我輸入,([^,]*), (.)然後在替換行中我輸入\2 \1。結果變成Duncan, Dave2 1

答案1

我不知道 ReNamer 但遵循正規表示式邏輯這應該有效:

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

解釋:

  • 初始^意味著“表達式的開始”
  • 括號()表示要記住的表達式的一部分,並且可以在替換為 和 時\1使用\2
  • [^,]*匹配所有字符,但不包括逗號(^在此上下文中表示“不匹配”)
  • .*匹配所有剩餘字符
  • 第一個括號內的表達式是您的LastName,第二個括號內的表達式是您的FirstName

答案2

你應該做這個:

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

\請記住,在 VI/VIM 中,某些標點符號需要在前面添加。

輸出:

, 名字 姓氏

相關內容