搜索非ascii的文档

时间:2012-01-13 02:58:18

标签: regex perl ascii character

我的计算机上的应用程序需要读入文本文件。我有几个,一个不起作用;程序无法读取并告诉我某处有一个坏人物。我的第一个猜测是那里有一个非ascii字符,但我不知道如何找到它。 Perl或任何通用正则表达式都会很好。有什么想法吗?

3 个答案:

答案 0 :(得分:12)

您可以使用[^\x20-\x7E]匹配非ASCII字符。

e.g。 grep -P '[^\x20-\x7E]' suspicious_file

答案 1 :(得分:4)

perl -wne 'printf "byte %02X in line $.\n", ord $& while s/[^\t\n\x20-\x7E]//;'

将查找不是ASCII字形字符,制表符,空格或换行符的每个字符。

如果它在O.K.文件中报告0D s(回车),则将\t\n更改为\t\n\r

如果它只在错误的文件中报告0D,那么您可以通过在其上运行dos2unix来修复这些文件。

答案 2 :(得分:2)

如果您在源代码中也使用制表符,请尝试以下模式:

[^\x08-\x7E]

也可以在Notepad ++中使用