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

时间:2017-07-26 14:47:18

标签: java regex

我有ASCII八进制值说^ @。每当我在字符串中找到这些八进制值时,都必须用?替换。

String c= "AA^@CC; 
c = c.replaceAll("[\\x00-\\x09 | \\x0B-\\x17]", "?"); 
System.out.print(c);

000是^@的八进制值。上述代码的预期输出为AA?CC

但上面的代码适用于非ascii字符,但我不知道如何用^替换^?

我们如何在这里使用正则表达式

我必须处理八进制范围。例如 - 任何ASCII值都在000-009或013-027的范围内。我必须换成?

1 个答案:

答案 0 :(得分:0)

代表一个ASCII序列,解释为八进制并以十六进制方式处理......只不过是一个魔术可以让它起作用。

根据我的理解,您尝试做的是在简单文本中用问号替换caret notations

如果是这种情况,你需要像这样工作:

\^[@-_]

翻译自己的正则表达式以匹配插入符号将导致字符类联合:

\^[@-I[K-O]]

注意:您不能在字符类[.. | ..]中应用OR逻辑。