我有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的范围内。我必须换成?
答案 0 :(得分:0)
代表一个ASCII序列,解释为八进制并以十六进制方式处理......只不过是一个魔术可以让它起作用。
根据我的理解,您尝试做的是在简单文本中用问号替换caret notations。
如果是这种情况,你需要像这样工作:
\^[@-_]
翻译自己的正则表达式以匹配插入符号将导致字符类联合:
\^[@-I[K-O]]
注意:您不能在字符类[.. | ..]
中应用OR逻辑。