这次问题比较简单。
我正在尝试使用正则表达式测试一个字符串是否不包含某个字符。我认为表达式应该是形如"[^x]"的,其中x表示你不想出现的字符,但似乎并不起作用。
例如,
Regex.IsMatch("103","[^0]")
和
Regex.IsMatch("103&","[^&]")
两个都返回 true(我本来期望是 false)。
我开始使用 ""[^&]"
",并认为可能需要将 & 转义为 \&,但似乎并没有什么区别。
有什么想法吗?我猜这是一个小问题。
另外,我正在使用 .NET,请注意这一点。
编辑1:
我找到了此内容,但似乎并没有解决我遇到的问题。
编辑2:
我想回应Kevin和Joel的建议。这些建议确实会更快,但它们无法满足我在这种情况下所需的灵活性,因此如果您通过搜索找到了这个问题,请确保查看他们的答案是否适合您的需求。在我的情况下,正则表达式被传递到一个 DataTable 验证方法中,该方法循环遍历每一行并验证该行特定列中的内容是否与传递进来的 RegEx 匹配。由于我将重复使用这个方法来验证其他几个被验证的 DataTable,所以我希望:
- 使用 Regex 来启用最广泛的验证,并且
- 始终寻找正向匹配(即不是使用 !Regex.IsMatch(cell, regexvariable) 的方式,而是依赖于始终能够使用 Regex.IsMatch(cell, regexvariable),因为调用此方法的大多数 DataTable 都将使用正向匹配,而不是负向匹配)。
希望这有所帮助。