.net - 不匹配确切单词的正则表达式

标签 .net regex

我希望我的 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.?!%, ]+$

Working Example

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/

相关文章:

java - 使用正则表达式提取网址的特定部分

.net - 即使 Linq to SQL 被整合到 Entity Framework 中,我是否应该学习它?

javascript - URL 匹配正则表达式并不总是有效

.net - 如何在资源字典中正确定义颜色?

c# - 如何将具有固定模式的值数组反序列化为强类型数据类?

regex - 从电子表格中单元格的值解析字符串和对象

php - preg_match : number-alphabets and commas only

regex - 你如何在 Stata 中只提取字符串的大写部分?

c# - c#中的简单托盘应用程序

c# - 提取 2 美元符号之间的字符串