Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何筛选特殊字符但保留其他字符_C#_Regex - Fatal编程技术网

C# 如何筛选特殊字符但保留其他字符

C# 如何筛选特殊字符但保留其他字符,c#,regex,C#,Regex,我试图筛选出特殊字符,但希望保留选项卡和逗号以及其他一些字符。我需要知道如何将逗号和制表符添加到正则表达式中,以便它们不会从字符串中删除。我一输入,就会出错 namespace StringSearch { using System.Text.RegularExpressions; class TestRegularExpressionValidation { static void Main() { string[] numbers = {"123_555-0190

我试图筛选出特殊字符,但希望保留
选项卡
逗号
以及其他一些字符。我需要知道如何将逗号和制表符添加到正则表达式中,以便它们不会从字符串中删除。我一输入,就会出错

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);
    }
}

-
应位于字符类的末尾或开头,即
[]

你的正则表达式是

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

\w
类似于
[a-zA-Z0-9\
您可以继续添加到您的角色类
[]
,但请确保将破折号
-
保留在角色类的开头或结尾,否则您将需要转义
-

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