正则表达式不等于字符串

时间:2010-06-03 09:26:40

标签: .net regex

我正在用正常的表情撞墙。我正在尝试定义一个表达式,它完全排除了这个文本'System'(不区分大小写),但可以包含 “系统”这个词提供的不仅仅是那个。

示例:

  • 系统==无效
  • SYSTEM == INVALID
  • system == INVALID
  • syStEm == INVALID
  • asd SysTem ==有效
  • asd System asd ==有效
  • 系统asd ==有效
  • asd系统==有效
  • asd ==有效

3 个答案:

答案 0 :(得分:48)

试试这个:

^(?!system$)

或者这匹配整行:

^(?!system$).*$

正则表达式在其开头有一个负向前瞻,如果“system”是整个字符串则不匹配。

答案 1 :(得分:4)

如果匹配^system$则拒绝(确保i标志为ON)。

答案 2 :(得分:1)

^$|^.{1-5}$|.{7}|^[^s]|^.[^y]|^..[^s]|^...[^t]|[^e].$|[^m]$ 

但如果可以,请使用amarghosh的答案。

(根据以下建议更新)