Regex String必须包含特殊字符

时间:2018-04-19 11:59:33

标签: c#

我要检查的字符串必须具有特殊字符。我一直在论坛里寻找它,但我发现只有thread这对我没有帮助

2 个答案:

答案 0 :(得分:1)

当你

  

想要检查必须有特殊字符

你必须决定特殊字符是什么(例如'{'TAB.是特殊字符吗?)。有几种选择。让我们声明(肯定

 #?!@$%^&*-

是唯一的特殊字符。在这种情况下,我们可以检查

 string special = "#?!@$%^&*-";

 bool hasSpecial = Regex.IsMatch(source, $"[{Regex.Escape(special)}]+");

或( Linq

 bool hasSpecial = source.Any(c => special.Contains(c));

相反,我们可以说(否定声明)特殊字符是不是字母数字的任何人。

 bool hasSpecial = Regex.IsMatch(source, @"\W+");

或( Linq

 bool hasSpecial = source.Any(c => !char.IsLetterOrDigit(c));

答案 1 :(得分:0)

试试这个:

^.*(?=.*[@#$%^&+=(){}<>!~_*?]).*$