javascript正则表达式只有在另一个模式不匹配时才排除模式

时间:2017-06-02 02:49:12

标签: javascript regex

需要使用正则表达式才能排除wag[.|on]ut[i|e]的句子,但仅当存在“sed[.|an]时才允许,并允许所有其他句子。有什么建议吗? 即。排除只有货车或只有ute的匹配。

我尝试/[^wag[on|.]]/ig.test(sentence),但这种方式不允许排除。我需要选择"是"句子仅如下。

考虑以下句子:
轿车很快< - 是
其他sed。很快< - 是的 旅行车很慢< - 没有 其他的摇摆。也很慢< - 没有 ute很慢< - 没有 其他uti也很慢< - 没有 摇摇晃晃。和马车比较慢。或轿车< - 是
uti或ute比sed慢。或轿车< - 是
两个都摇摆。马车和uti和ute很慢< - 没有 没有什么是快或慢< - 是的

2 个答案:

答案 0 :(得分:2)

这就是诀窍

function isMatch(input) {
   var regno = /(wag[.|on]|ut[i|e])/gi;
   var regyes = /sed[.|an]/gi;
   return !regno.test(input) || regyes.test(input);
}

结果:

enter image description here

答案 1 :(得分:0)

<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

您可以使用/^(?:.*sed[.|an].*|(?:(?!wag[.|on]|ut[i|e]).)*)$/ 匹配与某些模式不匹配的字符串。