这个问题很容易。正则表达式来判断一个字符串是否不包含特定字符
我想测试一个字符串是否不包含使用正则表达式的字符。我认为这个表情的形式是“[^ x]”,其中x是你不想出现的角色,但这似乎不起作用。
例如,
Regex.IsMatch("103","[^0]")
和
Regex.IsMatch("103&","[^&]")
都返回真(我期望假)。
我开始使用"[^&]"
,也许&需要转义为\ &,但似乎没有什么区别。
想法?我认为它很小。
此外,我使用.NET,所以请记住。
EDIT1:
我发现this,但它似乎没有回答我遇到的问题。
EDIT2:
我想给Kevin和Joel的建议作出回应。这些建议确实会更快,但在这种情况下,他们没有达到我需要的灵活性,所以如果您通过搜索找到了这个问题,那么一定要看看他们的答案是否符合您的需求。在我的情况下,正则表达式传递给一个DataTable验证方法,该方法循环遍历每一行,并验证特定列中该行的内容是否与正在传入的RegEx相匹配。由于我将重用此方法对于正在验证等几个数据表,我想:
- 使用正则表达式来实现验证的范围最广,并且
- 总是寻找一个积极的匹配(即不是使用的Regex.IsMatch(细胞! ,regexvariable),我想依靠总是能够使用Regex.IsMatch(cell,regexvariable),因为调用这个方法的大多数DataTables将使用正匹配而不是负数
希望有帮助。
如果只检查单个字符的存在,你可以没有正则表达式会好得多。凯文是正确的:使用.IndexOf()或更简单。它会更可读,更清晰,更快速。 – ruquay 2008-10-13 20:08:46