我希望我的 reg ex 接受集合 [a-zA-Z0-9.\?!%, ] 中的字符,并且除了确切的词“not set”之外也不异常(exception)。
成功匹配的例子:
category1
myCategory
Hello World!!!
notset
不成功匹配的例子:
{empty string}
not set
Not Set
NOT SET
<script>
我正在使用 .NET 框架。
谢谢!
最佳答案
显然,您可以通过代码测试“未设置”。如果它必须是正则表达式,您可以使用 negative lookahead :
^(?!not set$)[a-zA-Z0-9.?!%, ]+$
C# 代码示例如下:
Match m = Regex.Match(s, @"^(?!not set$)[a-zA-Z0-9.?!%, ]+$", RegexOptions.IgnoreCase);
if (m.Success)
{
// all is well
}
如果希望匹配不区分大小写(即“Not Set”无效,但“not set”有效),使用:
Match m = Regex.Match(s, @"^(?!Not Set$)[a-zA-Z0-9.?!%, ]+$");
关于.net - 不匹配确切单词的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7773519/