正则表达式 "All that don't contain this string"

Regex "All that don't contain this string"

我一点都不熟悉,也从来没有真正使用过正则表达式。我正在使用一些需要 "advanced filters" 正则表达式的软件,我花了 2 个小时的大部分时间研究并试图让它工作......我发现其他看起来相似的帖子,但是对于我的生活,我无法根据我的具体需要调整这些答案。

要求:Return 所有不包含以下排列的结果:

ListView
List View
Listview
List view
listview
list view
listView
list View

...但需要匹配超过 0 个字符的任何其他内容。我已经得到了以下在积极情况下的工作(例如,它成功地 匹配 上面的字符串。现在我只需要否定它。

[Ll]ist[\s]?[Vv]iew

直觉上,这似乎应该很容易...我尝试过的事情:

(?![Ll]ist[\s]?[Vv]iew)
(?!([Ll]ist[\s]?[Vv]iew))
(?:(?!([Ll]ist[\s]?[Vv]iew)))

这是一种似乎有效的模式:

^(?!.*\b[Ll]ist[ ]?[Vv]iew\b).*$

Demo

它使用否定前瞻来断言 list + view 的排列没有发生。你走在正确的轨道上,但是断言某个单词 WORD 不会出现在任何地方的一般模式是这样的:

^(?!.*\bWORD\b)

.* 允许 WORD 出现在任何地方。

请注意,如果您的正则表达式工具具有不区分大小写的模式,则该模式可以简化为:

^(?!.*\blist[ ]?view\b).*$