我正在寻找一个正则表达式来找出给定的单词序列有任何特殊字符。
例如。
在此输入字符串中
"test?test";
我想知道得到的话
"test(any special char(s) including space)test"
答案 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);