使用正则表达式检查字符串中的特定字符

时间:2018-10-07 18:30:15

标签: c# regex

假设我有一组不需要的字符& " > < { } ( ),并且我想验证给定的字符串不包含那些字符,现在我编写的函数如下:

bool IsStringValid(string s){
  if(s.Contains("&")| s.Contains(">")...)
    return false;
return true;
}

我如何写得更优雅?例如在正则表达式中?

2 个答案:

答案 0 :(得分:2)

正则表达式始终是您的朋友。

Regex validationRegex = new Regex(@"^[^&""><{}\(\)]*$");

bool IsStringValid(string s) => validationRegex.IsMatch(s);

答案 1 :(得分:2)

bool isValid =  !Regex.IsMatch(input, "[&\"><{}()]+");

但是我建议您不要使用正则表达式:

bool isValid = !"&\"><{}()".Any(c=> input.Contains(c));