2011-09-14 9 views
1

正規表現を使用して、スペース( '')、ドット( '。')およびハイフン( - )を文字列から削除したいと考えています。正規表現

私の現在のアプローチ:

string input = "hello  how --r dsbadb...dasjidhdsa.dasbhdgsa--dasb";   
var res = input 
    .ToCharArray() 
    .Where(i => i != ' ' && i != '-' && i != '.') 
    .Aggregate(" ", (a, b) => a + b); 

答えて

7
string filteredInput = Regex.Replace(input, "[ .-]+", ""); 

は、より簡単に、より読みやすくする必要があります。

+0

それらを置き換えます、スペースを標的とする... –

+0

は '入力=正規表現を試してみてください。置き換えられます。..(等) - 新しい文字列を作成します。代わりに "文字列"を置き換えます。 –

+0

'[.-] +'を使用して、隣接する文字を一度に置き換えることをお勧めします。 –

1
var result = string.Concat(input.Where(c => !new[] { '.', ' ', '-' }.Contains(c))); 
+0

@Joey、exceptをつけてサンプルを提供してください。 –

+0

@Joey、出力は 'helowrdsbajigvf'となります。コードをテストします。 –

+0

ああ、違いを設定します。私の悪い。 – Joey

0
string result = Regex.Replace(input, "[\s\.-]+", ""); 

\s\.は、ドットを標的とする、と-はハイフンを標的とすると動作しません除いて、空の文字列で