RegEx告诉字符串是不是特定的字符串

时间:2012-03-13 14:22:03

标签: regex regex-negation

假设我想匹配除一个以外的所有字符串:" ABC" 我怎么能这样做?

我需要在asp.net mvc 3中使用regular expression model validation

4 个答案:

答案 0 :(得分:1)

通常你会喜欢

(?!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一个。

答案 1 :(得分:1)

如果不知道你使用的是哪种语言,很难肯定地回答这个问题,因为有许多正则表达式,但你可以用负面的预测来做到这一点。

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

希望这可以帮助:

^(?!^ABC$).*$

使用此表达式,您将获得开头 (.*) 和结尾 (^) 之间所有可能的字符串 ($),但那些恰好是 ^ABC$.