正则表达式,以确定序列是否有任何特殊字符

时间:2010-11-11 06:33:43

标签: c# regex

我正在寻找一个正则表达式来找出给定的单词序列有任何特殊字符。

例如。

在此输入字符串中

    "test?test";

我想知道得到的话

    "test(any special char(s) including space)test" 

2 个答案:

答案 0 :(得分:2)

您可以使用[^A-Za-z0-9],它将匹配任何非字母数字的内容,但当然这取决于您认为的“特殊字符”。如果下划线不特殊[\W]可以是任何非单词(A-Za-z0-9_)字符的快捷方式。

答案 1 :(得分:1)

这里你真的不需要正则表达式。如果你想测试字母数字字符,你可以使用LINQ,例如(或者只是迭代字母):

string input = "test test";
bool valid = input.All(Char.IsLetterOrDigit);

Char.IsLetterOrDigit检查所有Unicode字母数字字符。如果你只想要英文版,你可以写:

public static bool IsEnglishAlphanumeric(char c)
{
    return ((c >= 'a') && (c <= 'z'))
        || ((c >= 'A') && (c <= 'Z'))
        || ((c >= '0') && (c <= '9'));
}

并以类似方式使用它:

bool valid = input.All(IsEnglishAlphanumeric);