0

我想替换一个包含不需要的 ASCII 字符的字符串,除了这两个范围(in hex):

x20-x7ex80-x9a

如何编写正确的正则表达式以替换所有不在 and 之间的20-7e字符80-9a

我试过这个:

String fixed = value_.replaceAll("[^(\\x20-\\x7e|\\x80-\\x9a)]", "");

但它没有用。 更新: 我得到一个字符串,它只有 x20-x7e 之间的字符,所有其他字符,包括 x80-x9a 都被替换。

我如何使用或在这两个范围之间?

4

2 回答 2

1

为什么不只是:

String fixed = value_.replaceAll("[^\\x20-\\x7e\\x80-\\x9a]", "");
于 2013-10-16T08:51:42.963 回答
0

修复您的正则表达式语法,并使用 Unicode\unnnn

String fixed = value_.replaceAll("[^\u0020-\u007e\u0080-\u009a]", "");

或八进制\nnn

String fixed = value_.replaceAll("[^\40-\176\200-\232]", "");

仅供参考虽然 Unicode 需要所有四位数字,但八进制只需要所需的数量。

于 2013-10-16T09:53:24.710 回答