删除扩展的 ASCII 字符。 Linux 脚本 (128-255)

Posted

技术标签:

【中文标题】删除扩展的 ASCII 字符。 Linux 脚本 (128-255)【英文标题】:Removing extended ASCII characters. Linux script (128-255) 【发布时间】:2015-01-18 13:09:49 【问题描述】:

我想在我的文本中删除任何类型的 ASCII 字符,其代码在区间 [128-255] 中。 gsub(/[^a-z]/, "", $0) --这就是我删除除字母之外的所有内容的方法; gsub(/ē|é|ě|è|ū|ú|ǔ|ù|ǖ|ǘ|ǚ|ǜ|ü|ō|ó|ǒ|ò|ī|í|ǐ|ì|ā|á|ǎ |à|å|ä|â/, "", $0) -- 这是我删除一些扩展字符的方法,但不是所有字符。 gsub(/"[\128-\255]"/, "", $0) 我正在尝试这个,但它显示了一个错误,无效的间隔。那么,任何人都可以帮助解决这个问题。先谢谢了。

【问题讨论】:

【参考方案1】:

反斜杠代码必须为八进制,或以 x 为前缀并为十六进制。

\200-\377
\x80-\xff

或者你可以使用strings

【讨论】:

它实际上没有用,但我只是使用了暴力方法,我复制了所有可能的小写扩展ASCII字符并将其删除。 :D 无论如何,谢谢,您的解决方案似乎还不错,但我不知道为什么它不起作用。 :(【参考方案2】:

\nnn 语法是八进制(n0-7),所以:

\128 = invalid octal
\200 = 128
\255 = 173
\377 = 255

所以你想要:

\200-\377

【讨论】:

以上是关于删除扩展的 ASCII 字符。 Linux 脚本 (128-255)的主要内容,如果未能解决你的问题,请参考以下文章

将扩展的 Ascii“表格”代码(例如 ─、┬)从 Php 脚本打印到控制台时出现问题

Linux之shall脚本扩展

匹配 .NET Regex 中的扩展 ASCII 字符

Java HtmlCleaner:不处理扩展的 ascii 字符

如何使用 Perl 在文件中查找扩展的 ASCII 字符?

如何在 Perl 中显示扩展 ASCII 代码字符?