3

对于 C#、ASP.NET 应用程序 - 这应该很简单,但我无法弄清楚这个正则表达式,我需要一个文本框无法作为值提交的字符串列表,我必须忽略大小写。

示例 - 无论大小写如何,我都需要我的正则表达式来拒绝以下字符串 - abc、def、ghi

我什至无法让正则表达式拒绝其中一个。我尝试了以下方式 -

[RegularExpression(@"(\W|^)(?i)!ABC(?-i)(\W|$)", ErrorMessage = "REJECTED!")]
public string Letters { get; set; }

那是行不通的!似乎拒绝一切。有人知道它应该是什么样子吗?我怎样才能拒绝所有这些?

感谢您提供的任何帮助!

4

6 回答 6

2

又快又脏,但试一试(假设我正确理解了这个问题!)

^(?i)(?!(ABC|DEF|GHI)(?-i)).*$
于 2013-02-14T21:38:24.923 回答
2

如果您只想忽略字符串,请使用此

^(?i)(?!.*(?:abc|def|ghi))

如果要忽略单词,请在模式周围使用单词边界

^(?i)(?!.*\b(?:abc|def|ghi)\b)
于 2013-02-14T21:39:38.463 回答
2

在标准正则表达式语法中,这将是^(?!abc$)(?!def$).*

于 2013-02-14T21:57:33.560 回答
2

这将检测 abc、def 和 ghi

(?i)(abc|def|ghi)

包含在^并且$只匹配那些而不匹配其他(例如不会匹配wxabcyz

^(?i)(abc|def|ghi)$

最后,如果您想匹配“这是一些 abc 随机文本”之类的内容并拒绝它,请执行此操作

(?i)\b(abc|def|ghi)\b
于 2013-02-14T21:58:01.170 回答
1
^((?!abc)|(?!def)|(?!ghi).)*$ 

就是这样。

顺便说一句,我建议您使用以下资源,您还没有。

正则表达式 pal 和正则表达式.info

于 2013-02-14T21:59:36.690 回答
0
^(?i)(?!(ABC|DEF|GHI)(?-i)).*$
于 2016-11-16T15:20:17.067 回答