Java - 正则表达式替换字符串中的八进制值

标签 java regex ascii octal

我有一组八进制值(0177-0377)。每当我在字符串中找到这些值时,都必须替换为 ?.

    String a= "sccce¼»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕerferferfer";
    for (int i = 0177; i<= 0377 ; i++)
    {
        char x= (char) i;
        a= a.replaceAll(Character.toString(x), "?");
    }
    System.out.print(a);

但是当我们有小文件时这看起来不错,但我必须在 1TB 文件中执行此操作。

我们如何使用正则表达式来完成此任务。

最佳答案

您可以使用此正则表达式[^\p{ASCII}],它替换所有非ASCII字符:

a.replaceAll("[^\\p{ASCII}]", "?")

输出:

sccce????????????????????????????erferferfer
<小时/>

您必须从 link 中找到十六进制中八进制字符的表示形式0177\x7F 表示,0377FF

表示

对于您的情况,您可以使用:

a.replaceAll("[\\x7F-\\xFF]", "?")

Ideone demo

关于Java - 正则表达式替换字符串中的八进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44136061/

相关文章:

java - 无法执行 war - 文件 : "no main manifest attribute"

java - 正则表达式匹配以空格分隔的数字值,但整个字符串不以空格结尾

language-agnostic - ASCII图值得我花时间吗?

c - ASCII 表 - 负值

c - 如何将字符串转换为嵌入在c中的base64 ASCII

java - 由 : com. google.gson.JsonSyntaxException : com. google.gson.stream.MalformedJsonException: Expected ':' at line 引起

java - 为数据结构定义泛型/变量类型

java - android retrofit 2中通过api注册时获取response 400的错误如何解决

python - 使用正则表达式从数据框中删除/排除列 - Python

regex - scala 正则表达式组匹配和替换