如何使用正则表达式和Notepad ++删除所有非ASCII字符?


147

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

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

  • 如果我要列入白名单并为所有ASCII词/行添加书签,那么非ASCII行将被取消标记

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

Answers:


263

该表达式将搜索非ASCII值:

[^\x00-\x7F]+

勾选“搜索模式=正则表达式”,然后单击Find Next

来源:正则表达式任何ASCII字符


4
并且以防万一,如果您不删除“ ^”,则您正在搜索ASCII行
Mike M

7
效果不错,但是我必须进行设置Encoding->Encode in ANSI。找不到其他东西。
FoamyGuy 2014年

1
使用regexp-search选项(星号按钮)在netbeans中完美运行
Teson 2015年

可以在VS-Code中使用,请不要忘记单击Regex搜索选项!
yashhy

4
如果要保留\ r和\ n-回车符和换行符-可以使用此正则表达式:[\ x00- \ x09 \ x0B- \ x0C \ x0E- \ x1F] +
Steffen Winkler

52

在记事本++中,如果进入菜单搜索查找范围内的字符非ASCII字符(128-255),则可以逐步浏览文档中的每个非ASCII字符。

如果要在文档中循环查找所有非ASCII字符,请确保选中“ 环绕 ”。

屏幕截图“查找范围”


3
这很好用,但是不会在列表中显示所有结果,也没有“替换”选项
Alex

整洁……因为我总是忘记了非ASCII的正则表达式,每次都必须使用Google来返回此页面:)
Jean-Francois T.

27

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

[\x00-\x1F]+

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

[^\x1F-\x7F]+

ProGM的答案中来自\x00和的值\x1F已经匹配。
Unihedron

2
它们与您要保留的值匹配。我只是建议这样做,以防您想要摆脱它们。
2015年

最后一个示例应从20开始,以排除单位分隔符。也许排除7F也是控制角色。
fgb

辉煌!我使用以下方法使用qdap R软件包删除了所有讨厌的非ASCII字符:mgsub("[^\x1F-\x7F]+", "", text_vector, fixed = FALSE)
Pablo Adames

22

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

删除非ASCII

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

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

突出显示非ASCII

干杯


1
如果要复制粘贴搜索表达式[^ \ x00- \ x7F] +
鬣狗,

2
如果要保留\ r和\ n-回车符和换行符-可以使用此正则表达式:[\ x00- \ x09 \ x0B- \ x0C \ x0E- \ x1F] +
Steffen Winkler

4

要保留新行:

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

下一个:

  1. 选择替换选项正则表达式。
  2. 输入此:[^ \ x20- \ x7E] +
  3. 保持替换为空
  4. 点击全部替换

现在,选择替换选项扩展并用\ n替换#

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


3

另一个好技巧是在编辑器中进入UTF8模式,以便您实际上可以看到这些有趣的字符并自行删除它们。


1

其他方式...

  1. 如果尚未安装Text FX插件
  2. 转到TextFX菜单选项->将所有不可打印的字符转换为#。它将所有无效字符替换为3#符号
  3. 转到查找/替换并查找###。用空格替换它。

如果您不记得正则表达式或不关心查找它,那就很好了。但是其他人提到的正则表达式也是一个很好的解决方案。


切换所有字符会用###替换所有类型的标点符号。我希望该解决方案:更换“与”同”与”替换‘&’等。
卡西姆Husaini

它工作正常,但是该工具用一个#字符而不是三个字符替换了有趣的字符。请注意。
拉加夫

1
Text FX插件已弃用,甚至可能不再可用。参见例如TextFX的未来 - “列表增长足够长时,告别已经为社区服务良好的老龄化
彼得·莫滕森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.