2016-07-06 14 views

答えて

0

これは動作するはずです:

var result = new Regex("[^a-zA-Z0-9 ]").Replace(address, string.Empty); 

これは続けて何a-ZA-Zまたは0-9またはwhite space

また、LINQを使用することができます。

var result2 = new String(address.Where(x => char.IsLetterOrDigit(x) 
             || char.IsWhiteSpace(x)).ToArray()); 
+0

最後の ' - ':それはなに? –

+0

@PowerPuffGirlどれが正確? – user3185569

+0

なぜ落選ですか? – user3185569

3

このください

を試してみてください
string address = "TEXT 3 [email protected]#$%^&*()_}|{\":?> REMOVE ALL SYMBOLS 45"; 

var sb = new StringBuilder(); 
foreach (var c in address) 
{ 
    if (Char.IsLetterOrDigit(c) || Char.IsWhiteSpace(c)) 
     sb.Append(c); 
} 

var result = sb.ToString(); 

正規表現よりも速くなければなりません。

+0

'if(c == '|| Char.IsLetterOrDigit(c))...'がうまくいかなかったかどうかわからないので、要求されなかったタブ文字や改行文字も使用できるようになりました。 –

+0

スペースも要求されていませんでしたが、それらはサンプルに存在しています。また、我々は外来文化について考えるべきか分かりません。だから本当にたくさんの質問があります:) – tym32167

0

どちらも私のために働いた。 最終コード:

var addressWithoutEmtySpacesMoreThanOne = Regex.Replace(address, @"\s+", " "); 
var result = new Regex("[^a-zA-Zа-яА-Я0-9 -]").Replace(addressWithoutEmtySpaces, ""); 
customer.Address = result; 
関連する問題