C# Regex以确定序列是否有任何特殊字符
我正在寻找一个正则表达式,以找出给定的单词序列有任何特殊字符 比如说 在这个输入字符串中C# Regex以确定序列是否有任何特殊字符,c#,regex,C#,Regex,我正在寻找一个正则表达式,以找出给定的单词序列有任何特殊字符 比如说 在这个输入字符串中 "test?test"; 我想知道你说了什么 "test(any special char(s) including space)test" 你可以使用 [^ a-Za-Z0-9] ,它将匹配任何不是字母数字的东西,但是当然它取决于你认为什么是“特殊字符”。如果下划线不是特别的,代码> > \W/可以是任何单词的快捷方式( -AZ-Z09< < /COD>)字符。 这里,你不需要真正的
"test?test";
我想知道你说了什么
"test(any special char(s) including space)test"
你可以使用<代码> [^ a-Za-Z0-9] ,它将匹配任何不是字母数字的东西,但是当然它取决于你认为什么是“特殊字符”。如果下划线不是特别的,代码> > \W/<代码>可以是任何单词的快捷方式(<代码> -AZ-Z09< < /COD>)字符。
这里,你不需要真正的正则表达式。例如,如果您想测试字母数字字符,您可以使用LINQ(或只是迭代字母):
Char.IsleterOrdigit
检查所有Unicode字母数字字符。如果你只想要英文的,你可以写:
public static bool IsEnglishAlphanumeric(char c)
{
return ((c >= 'a') && (c <= 'z'))
|| ((c >= 'A') && (c <= 'Z'))
|| ((c >= '0') && (c <= '9'));
}
只是一个小小的注释:
[\W]
与\W
相同。是的,非常正确。我有[^\w]
,然后在最后一分钟切换了它,忘了删除char类括号。
public static bool IsEnglishAlphanumeric(char c)
{
return ((c >= 'a') && (c <= 'z'))
|| ((c >= 'A') && (c <= 'Z'))
|| ((c >= '0') && (c <= '9'));
}
bool valid = input.All(IsEnglishAlphanumeric);