2010-11-30 17 views
3

何百ものデータエントリをループしていますが、そのほとんどは自分のルールに従って有効ですが、エントリを使用する前にフィルタリングする必要がある特殊文字や不要な空白があります。Javaで不要な文字列をフィルタリングする

数字と文字とともに、=,文字のみを許可します。その他の特殊文字はありません。 1つの空白がありますが、データを区切るには,に従うだけです。

私は、ループ内フィルタメソッドを呼び出しています:

private String filterText(String textToBeFiltered) { 
    String filteredText = null; 

    // Remove all chars apart from = and , with whitespace only allowed 
    // after the , 

    return filteredText; 
} 

私は正規表現を完全に新しいですが、チュートリアルをトロールされていますし、任意のアイデアをいただければ幸いです。

ありがとうございます!

フランク

答えて

7

あなたはとしてreplaceAllメソッドを使用することができます使用正規表現がある

input = input.replaceAll("[^=,\\da-zA-Z\\s]|(?<!,)\\s",""); 

Ideone Link

=以外の任意の文字を置き換える

  • :意味[^=,\\da-zA-Z\\s]|(?<!,)\\s,または任意の数字または任意の文字または の空白がない場合は""となり、実質的には が削除されます。実際のデータでは動作しません:それは,
+0

@codadictが付いていない場合

  • はまた、任意の空白を削除するだけ 。 U + A0では**大量の**テキストデータがありますが、それは私が処理するものの95%以上です。あなたのパターンは、他のいくつかの共通の空白コードポイントの中の0x85でも失敗します。それ以外のものは誰も信じていない素朴なファサードです。 Tschüβ! – tchrist

  • 関連する問題