0

hexこれらの 2 つの範囲 (内) 以外の不要な ASCII 文字を含む文字列を置き換えたいと思います。

x20-x7ex80-x9a

20-7eと の間にないすべての文字を置き換えるように正しい正規表現を作成するにはどうすればよい80-9aですか?

私はこれを試しました:

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

しかし、うまくいきませんでした。 更新: x20-x7e の間にある文字のみを持つ文字列を取得し、 x80-x9a を含む他のすべての文字が置き換えられます。

これらの2つの範囲をどのように使用するのですか?

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]", "");

または 8 進数\nnn:

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

参考までに、Unicode では 4 桁すべてが必要ですが、8 進数では必要な数だけ必要です。

于 2013-10-16T09:53:24.710 に答える