正则表达式取决于字母数字的符号

时间:2016-09-02 18:03:27

标签: c# regex

该行应为:

  • 包含字母数字,点号.和减号-,空格,下划线,斜线
  • 如果没有字母数字,则正则表达式应返回false

我已经写了以下Regex模式:

string pattern = @"^[a-zA-Z0-9._\+\-\/\s]+$";

并且不满足第二个条件:

string s1 = "."; // or dot, space, underscore, slash  

// Compare a string against the regular expression
var isOK = new Regex(pattern).IsMatch(s1); // true, but I would like to be false

您能告诉我创建Regex模式的正确方法吗?

1 个答案:

答案 0 :(得分:3)

首先,有一个字符集,其中包含[a-zA-Z0-9_] - \w。其次,您不需要转义+内部字符集。

对于实际的解决方案,您可以使用positive lookahead来保证字符串中的某个字符(.*)之后至少存在一个这样的字符:

@"^(?=.*[a-zA-Z\d])[\w.+\-\/\s]+$"