題 Notepad ++使用換行查找和替換字符串


考慮具有要查找和替換的特定字符串的場景。您希望將其替換為包含換行符(或字符序列)的新字符串。

abc123 xyz456-blah
fsafd23 xyz456-green
89hjkf23 xyz456-red
afdsa23 xyz456-yellow
abaac123 xyz456-orange

在上面的場景中,我想找到“ xyz“和 替換空間 帶回車/換行。

結果如下:

abc123
xyz456-blah
fsafd23
xyz456-green
89hjkf23
xyz456-red
   ︙

等等...

題: 你最容易用Notepad ++實現這個目標嗎?您是否建議使用其他工具輕鬆執行此命令?


201
2017-09-02 17:57


起源




答案:


Notepad ++會做得很好。

搜索字符串:

 XYZ
 注意前面的空間 xyz

替換字符串:

\ r \ nxyz

你還需要設置 “搜索模式” 至 “擴展” (左下方的組合框 更換 對話框)以便Notepad ++尊重轉義代碼。


一些背景: “\ r \ n”是回車的轉義碼,是Windows中新行的標準。 Unix風格的系統只使用\ n(換行符)。大多數IDE,包括Notepad ++,都會理解這兩種樣式並用新行描述每種樣式,但核心Windows實用程序並不理解它等同於\ r \ n,因此後者通常是最合適的,如果文件是為了在Windows環境中使用。


269
2017-09-02 18:02



\ r \ n = Windows換行語法。但是,對於普通舊記事本以外的所有內容,它只接受\ n換行(這也更常規)。 - Macha
你的短語“更傳統”是誤導性的。 “\ r \ n”是Windows上的標準。只是許多編輯器和IDE碰巧認識到以“\ n”結尾的Unix / Linux標準行並相應地顯示文檔。沒有任何關於“\ n”的東西使它更傳統。 - Brian Lacy
說實話,Win / DOS版本對我來說更有意義。 “\ r”表示“回車,或'將托架/光標返回到行的開頭'”,“\ n”表示“將托架/光標向前推進一行”。當然,Unix出現在20年前,所以我想在這個意義上是微軟打破了標準。 - Brian Lacy
除非您按照其他答案中的指定設置搜索模式,否則此操作無效: superuser.com/questions/34451/... - codeulike
如果您嘗試用實際的新行替換文字字符串“\ r \ n”,我必須執行以下操作:將搜索模式設置為正常,使用***查找/替換\ r \ n。然後將搜索模式設置為Extended,使用\ r \ n找到/替換***。 - goku_da_master


在Notepad ++中,它非常簡單......

  • 發現:xyz
  • 替換為:\ n


  • 搜索模式:擴展(\ n,\ t等)

訣竅是設置搜索模式。


60
2017-09-02 18:01



這個答案對我有用,被接受的沒有。 Ver 5.8.6 - bdwakefield
是的,這裡接受的答案沒有指定使用擴展模式.. - Andy
搜索模式是關鍵,感謝發布。 - Jrod
為什麼不 \r\n (代替 \n)? - Peter Mortensen


在“替換”對話框中,確保在“搜索模式”下選擇了“擴展”。然後在查找框中輸入“xyz”並替換為“\ n”。


5
2017-09-02 18:01



為什麼不 \r\n (代替 \n)? - Peter Mortensen


當我無法直接輸入文本字段(例如製表符和換行符)的S&Ring字符時,我作弊了一些。找到已包含該字符的文檔中的某個位置,然後復制它,並將其粘貼到替換字段中。

因此,在您的示例中,從一行的開頭開始,單擊,拖動到前一行的最後一行,複製該行,然後將其粘貼到“替換”對話框中。


4
2017-09-02 17:59





對於Notepad ++,將搜索模式更改為 擴展 然後在 用。。。來代替 現場使用 \ n


2
2017-09-02 18:02



為什麼不 \r\n (代替 \n)? - Peter Mortensen