我用正则表达式将我的头撞在墙上。我试图定义一个完全排除这个文本'系统'的表达式(不区分大小写),但可以包含'System'一词,只要它不是这样。正则表达式不等于字符串
实例:
- 系统== INVALID
- SYSTEM == INVALID
- 系统== INVALID
- 系统== INVALID
- ASD系统==有效
- ASD系统asd ==有效
- 系统asd ==有效
- ASD系统==有效
- ASD ==有效
我用正则表达式将我的头撞在墙上。我试图定义一个完全排除这个文本'系统'的表达式(不区分大小写),但可以包含'System'一词,只要它不是这样。正则表达式不等于字符串
实例:
试试这个:
^(?!system$)
还是这整个线路符合:
^(?!system$).*$
正则表达式具有负在其开始处向前看,如果“系统”是整个字符串,则不匹配。
^$|^.{1-5}$|.{7}|^[^s]|^.[^y]|^..[^s]|^...[^t]|[^e].$|[^m]$
但是,如果可以,请使用amarghosh的答案。
(根据以下建议更新)
你可能是指'。{1,5}'。 – Kobi 2010-06-03 09:46:17
嘿,我写了没有测试它。我有点震惊,它实际上第一次尝试。前两个条款是多余的,因此: (^。{1-6} $)|(。{8})|(^ [^ s])|(^。[^ y])|(^ .. [^ s])|(^ ... [^ t])|([^ e]。$)|([^ m] $) Nice tip about?!虽然 - 我没有听说过它。 – 2010-06-03 09:46:36
oops。该正则表达式允许通过“systuem”。 (并且空字符串失败,这显然是可以接受的吗?) 尝试: ^ $ | ^。{1-5} $ |。{7} |^[^ s] | ^。[^ y] |^.. [^ s] |^... [^ t] | [^ e]。$ | [^ m] $ – 2010-06-03 09:51:23
只是出于好奇,怎么样?!操作员工作?我从来没有使用过那个(尽管我用了很多正则表达式,我倾向于找到不使用“不”的解决方案)。 – Alxandr 2010-06-03 09:30:24
啊,太简单了!我确信我尝试过......!谢谢。 – Kieron 2010-06-03 09:32:42
@Alxandr - 它会检查当前位置后面的内容。例如,'c(?!4)'将匹配来自'Doc12'的c,但不匹配'Doc42'上的c。环视无法捕获,因此我不必担心替换数字,或者检查边缘情况(例如,如果c是最后一个字符:'Doc')。 – Kobi 2010-06-03 09:36:18