我想替换包含不需要的ASCII字符的字符串,除了这两个范围(hex
中):
x20-x7e
和x80-x9a
。
如何编写正确的正则表达式,以便它替换所有不在20-7e
和80-9a
之间的字符?
我试过了:
String fixed = value_.replaceAll("[^(\\x20-\\x7e|\\x80-\\x9a)]", "");
但它并没有奏效。 的更新: 我得到的字符串只有x20-x7e之间的字符,包括所有其他字符 x80-x9a被替换。
我如何使用或在这两个范围之间?
答案 0 :(得分:1)
为什么不呢:
String fixed = value_.replaceAll("[^\\x20-\\x7e\\x80-\\x9a]", "");
答案 1 :(得分:0)
修复正则表达式语法,并使用Unicode \unnnn
String fixed = value_.replaceAll("[^\u0020-\u007e\u0080-\u009a]", "");
或八进制\nnn
:
String fixed = value_.replaceAll("[^\40-\176\200-\232]", "");
仅供参考虽然Unicode需要全部四位数,但八进制只需要所需数量。