如何使用regex和Notepad ++删除所有非ASCII字符?

时间:2014-01-02 19:08:06

标签: regex expression notepad++ non-ascii-characters

我搜索了很多,但没有写到如何从Notepad ++中删除非ASCII字符。

我需要知道在查找和替换中写入什么命令(图片会很棒)。

  • 如果我想制作一个白名单并为所有ASCII字/行添加书签,那么非ASCII行将无标记

  • 如果文件很大,无法选择所有ASCII行,只想选择包含非ASCII字符的行...

8 个答案:

答案 0 :(得分:223)

此表达式将搜索非ASCII值:

[^\x00-\x7F]+

勾选'搜索模式=正则表达式',然后点击查找下一个

来源: Regex any ASCII character

答案 1 :(得分:41)

在Notepad ++中,如果您转到菜单搜索查找范围内的字符非ASCII字符(128-255),您可以然后逐步浏览文档到每个非ASCII字符。

答案 2 :(得分:19)

除了ProGM的答案之外,如果您在NUL或ACK等框中看到字符并希望摆脱它们,那些是ASCII控制字符(0到31),您可以使用以下表达式找到它们删除它们:

[\x00-\x1F]+

为了删除所有非ASCII和ASCII控制字符,您应该删除与此正则表达式匹配的所有字符:

[^\x1F-\x7F]+

答案 3 :(得分:17)

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

Removing non-ASCII

要突出显示字符,我建议在搜索窗口中使用标记功能:这会突出显示非ASCII字符,并将书签放在包含其中一个字符的行中

Highligh non-ASCII

如果要突出显示并在ASCII字符上添加书签,可以使用正则表达式[\x00-\x7F]来执行此操作。

干杯

答案 4 :(得分:4)

保留新行:

  1. 首先为新行选择一个字符......我使用#。
  2. 选择替换选项,扩展。
  3. 输入\ n替换为#
  4. 点击全部替换
  5. 下一步:

    1. 选择替换选项正则表达式。
    2. 输入:[^ \ x20- \ x7E] +
    3. 保持替换为空
    4. 点击全部替换
    5. 现在,选择替换选项扩展和替换#与\ n

      :)现在,你有一个干净的ASCII文件;)

答案 5 :(得分:3)

另一个好方法是在编辑器中进入UTF8模式,这样你就可以真正看到这些有趣的角色并自己删除它们。

答案 6 :(得分:1)

另一种方式......

  1. 如果您还没有安装Text FX插件
  2. 转到TextFX菜单选项 - >将所有不可打印的字符删除到#。它将用3#符号替换所有无效字符
  3. 转到查找/替换并查找###。用空格替换它。
  4. 如果您不记得正则表达式或不关心查找它,这很好。但其他人提到的正则表达式也是一个很好的解决方案。

答案 7 :(得分:0)

点击查看/显示符号/显示所有字符 - 显示文件中的 [SOH] 字符 单击文件中的 [SOH] 符号 CTRL=H 调出替换 保持“查找内容:”不变 将“替换为:”更改为您选择的字符(逗号、分号、其他...) 点击“全部替换” 大功告成!