2013-12-09 79 views
1

我試圖過濾掉特殊字符,但要保留tabcomma以及其他一些字符。我需要知道如何將逗號和製表符添加到我的正則表達式中,以便它們不會從字符串中刪除。只要我放,我會得到錯誤。如何過濾特殊字符但保留其他字符

namespace StringSearch { 
using System.Text.RegularExpressions; 

class TestRegularExpressionValidation { 
    static void Main() { 
     string[] numbers = {"123_555-0190", "444-234-22450", "690-555-0178", 
          "146-893-232", "146-555-0122", "4007-555,-0111", 
          "407-55-0111", "a1b-Cd-EfgH", "a1b-Cd-Efgn", 
          "UM2345678", 
          "11/12/2013 4:10:06 PM    UM2345678     UM2345678", 
          "407-2-5555"}; 

     foreach (string s in numbers) { 
      string a = RemoveSpecialCharacters(s); 
      Console.WriteLine(a); 
     } 
     Console.WriteLine("Press any key to exit."); 
     Console.ReadKey(); 
    } 

    public static string RemoveSpecialCharacters(string str) { 
     return Regex.Replace(str, "[^a-zA-Z0-9_.-]+", "", RegexOptions.Compiled); 
    } 
} 

回答

1

您只需不斷增加到你的角色類[],但一定要離開破折號-開頭或你的性格類的末尾,否則你將需要避免\-

[^a-zA-Z0-9_.,\t-]+ 

Working demo

1

-應該是一個字符類即結束或開始[]

你的正則表達式將是

[^\\w.,\t-]+ 

\w類似於[a-zA-Z0-9_]

相關問題