如果它不包含{word1,word2,word3},我该怎么办? 我必须把 ^ 符号放在哪里? 我认为它必须看起来像这样
^([^word1|word2|word3])$
但它不起作用。 你能帮忙吗?感谢
答案 0 :(得分:4)
正则表达式不是测试这些条件的最佳工具,但如果必须,那么可以使用negative lookaheads来完成:
^(?!.*word1)(?!.*word2)(?!.*word3).*$
您尝试执行的操作无效,因为[^...]
是带有无序字符列表的负字符类。你写的内容相当于:
^([^123dorw|])$
另请注意,根据您的需要,您可能还希望在正则表达式中包含单词边界:
^(?!.*\bword1\b)(?!.*\bword2\b)(?!.*\bword3\b).*$
答案 1 :(得分:0)
你尝试的看起来像: 如果句子包含不 word1 | 不 word2 | 不 word3 然后做点什么
我会建议一个解决方案: 如果句子包含word1 | word2 | word3 然后什么都不做 其他做点什么
表示不要在“查询”中使用否定,而是在结果中使正则表达式更简单。