0

文字列からシンボルを取り除こうとしていますが、うまくいきません。パターンマッチャーが壊れたようです。私は何かが足りないことを知っています。ありがとう。

Pattern p = Pattern.compile("[,\\.;:{}/\\[\\]<>?`~!@#$%^&*()_+=]");
Matcher m = p.matcher("April's");
Matcher m1 = p.matcher("Place to go!");
setName(m.replaceAll(""));
setDescription(m1.replaceAll(""));

私はこれを見ることが期待されています:

入力 - 「サラのスコープ」

出力 - 「サラのスコープ」

私が現在見ているのは:

入力 - 「サラのスコープ」

出力 - 「サラのスコープ」

4

3 に答える 3

0

文字でも空白でもないすべての文字を削除しようとしているようです。その場合、これは機能します:

"[^\\sA-Za-z]"

または、数字を含めたい場合:

"[^\\sA-Za-z0-9]"

または、保持したいものを具体的に知っている場合:"[^次に保持したいもの、次に]".


Stringパターンに一致しないa のすべての文字を削除しようとしているだけの場合は、を使用する方が簡単String.replaceAll()です。


正規表現の詳細については、正規表現のチュートリアルを参照してください。

于 2013-11-06T17:20:43.337 に答える