簡體   English   中英

如何使用正則表達式和 Notepad++ 刪除所有非 ASCII 字符?

[英]How do I remove all non-ASCII characters with regex and Notepad++?

我搜索了很多,但沒有寫到如何從 Notepad++ 中刪除非 ASCII 字符。

我需要知道在查找和替換中要寫什么命令(有圖片會很棒)。

  • 如果我想創建一個白名單並為所有 ASCII 單詞/行添加書簽,那么非 ASCII 行將不被標記

  • 如果文件很大並且無法選擇所有 ASCII 行,而只想選擇包含非 ASCII 字符的行...

此表達式將搜索非 ASCII 值:

[^\x00-\x7F]+

勾選“搜索模式=正則表達式”,然后單擊查找下一個

來源: 正則表達式任何 ASCII 字符

在 Notepad++ 中,如果您轉到菜單搜索查找范圍內的字符非 ASCII 字符 (128-255) ,您可以逐步瀏覽文檔到每個非 ASCII 字符。

如果要在文檔中循環查找所有非 ASCII 字符,請務必勾選“環繞”。

屏幕截圖“在范圍內查找”

除了 ProGM 的回答之外,如果您在 NUL 或 ACK 等框中看到字符並想要擺脫它們,這些是 ASCII 控制字符(0 到 31),您可以使用以下表達式找到它們並將它們刪除:

[\x00-\x1F]+

為了刪除所有非 ASCII AND ASCII 控制字符,您應該刪除與此正則表達式匹配的所有字符:

[^\x1F-\x7F]+

要刪除所有非 ASCII 字符,可以使用以下替換: [^\x00-\x7F]+

刪除非 ASCII

要突出顯示字符,我建議在搜索窗口中使用標記功能:這會突出顯示非 ASCII 字符並在包含其中一個字符的行中放置一個書簽

如果您想突出顯示並在 ASCII 字符上添加書簽,則可以使用正則表達式[\x00-\x7F]來執行此操作。

突出顯示非 ASCII

干杯

要保留新行:

  1. 首先為換行選擇一個字符...我使用了#。
  2. 選擇替換選項,擴展。
  3. 輸入 \n 替換為 #
  4. 點擊全部替換

下一個:

  1. 選擇替換選項正則表達式。
  2. 輸入這個:[^\x20-\x7E]+
  3. 保持替換為空
  4. 點擊全部替換

現在,選擇替換選項擴展並用\n替換#

:) 現在,你有一個干凈的 ASCII 文件;)

另一個好技巧是在你的編輯器中進入 UTF8 模式,這樣你就可以真正看到這些有趣的字符並自己刪除它們。

另一種方式...

  1. 如果您還沒有 Text FX 插件,請安裝它
  2. 轉到 TextFX 菜單選項 -> 將所有不可打印的字符轉換為 #。 它將用 3 # 個符號替換所有無效字符
  3. 轉到查找/替換並查找###。 用空格替換它。

如果您不記得正則表達式或不想查找它,這很好。 但是其他人提到的正則表達式也是一個很好的解決方案。

單擊查看/顯示符號/顯示所有字符 - 顯示文件中的 [SOH] 字符 單擊文件中的 [SOH] 符號 CTRL=H 調出替換 保留“查找內容:”原樣 更改'替換為:'到您選擇的字符(逗號,分號,其他......)點擊'全部替換'完成並完成!

因為我無法評論。 除了史蒂芬溫克勒:

[\x00-\x08\x0B-\x0C\x0E-\x1F]+

忽略 \r \n AND \t (回車、換行、制表符

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM