RegEx判断一个字符串是否不是特定的字符串

假设我想匹配除一个字符串之外的所有字符串:“ABC”我该怎么做?

我需要这个在asp.net mvc 3中进行正则表达式模型验证。


通常你会喜欢

(?!ABC)

例如:

^(?!ABC$).*

所有不是ABC的字符串

分解它意味着:

^ beginning of the string
(?!ABC$) not ABC followed by end-of-string
.* all the characters of the string (not necessary to terminate it with $ because it is an eager quantifier)

技术上你可以做类似的事情

^.*(?<!^ABC)$

分解它意味着

^ beginning of the string
.* all the characters of the string 
(?<!^ABC) last three characters captured aren't beginning-of-the-string and ABC 
$ end of the string (necessary otherwise the Regex could capture `AB` of `ABC` and be successfull)

使用负面的背后,但它是更复杂的阅读(和写)

啊,显然不是所有的正则表达式实现都实现了它们:-) .NET就是这样。


因为有很多正则表达式,所以很难在不知道你使用什么语言的情况下明确地回答这个问题,但是你可以通过负面预测来做到这一点。

https://stackoverflow.com/a/164419/1112402


(?!ABC)^ $
试试这个,这将排除所有包含ABC的字符串。

链接地址: http://www.djcxy.com/p/76699.html

上一篇: RegEx to tell if a string is not a specific string

下一篇: Help with regex include and exclude