2010-12-01 21 views
5

これにはかなりの数の質問があることがわかりましたが、自分の状況に適した解決策をまだ見つけていません。私はstring.trim()のことを知っていて、何の効果もありません。オンラインで調べて、string.trim()の憎悪の世界を明らかにした後、削除しようとしている空白文字は、.trim()の範囲外でなければなりません。Javaの文字列から空白を取り除く

'='と '、'を除く特殊文字と '、'の直後にあるすべての空白を除いて、完全に理解できない正規表現を使用しています。

ただし、文字列からすべての空白を完全に削除したいと考えています。私はこれを達成するために使用している正規表現を編集する方法の任意のアイデアをいただければ幸いです。また、私が望むのは、数字と文字を残して、 '='と '、'です。空白やその他の特殊文字はすべて削除する必要があります。

はここで、これまでのコードです:

if (argsToBeFiltered != null) { 
      // Remove all whitespace and chars apart from = and , 
      String filteredArgs = argsToBeFiltered.replaceAll(
        "[^=,\\da-zA-Z\\s]|(?<!,)\\s", ""); 
      return filteredArgs; 
} 

答えて

5

時間は、正規表現を学ぶために!

PatternおよびLesson: Regular Expressionsなどのさまざまな正規表現チュートリアルを参照してください。

[^=,\\da-zA-Z\\s] 

その部分は言う一致しない(^)文字:=,、数字(\ d)は、-Z(A-Z)または空白(\ S)。しかし、スペースにマッチするようにしたいと思うかもしれません(それにマッチする2番目のコンマの後にはスペースがありません)。だから、:

argsToBeFiltered.replaceAll("[^=,\\da-zA-Z]", ""); 
+3

非常に適切ではないこと。 '\\ s'(または文字列エスケープの後の' \ s')は空白だけでなく、縦と横のタブ、改行/改行なども含みます。 – Powerlord

+0

ありがとうございました! – Frank

+0

@ R。 Bemroseありがとう。修正されました。 –

1

はこれを試してください: -

if (argsToBeFiltered != null) { 
      // Remove all whitespace and chars apart from = and , 
      String filteredArgs = argsToBeFiltered.replaceAll(
        "\\w+"); 
      return filteredArgs; 
} 
+0

ありがとうCoolBeans - pstは私のためにそれを釘付け。関心のために乾杯! – Frank

関連する問題