vscode 中的负前瞻

Negative lookahead in vscode

我想在我的标记中找到所有 <img /> 标签,其中不包含 bootstrap img-fluid class.

这很好:<img class="foo img-fluid bar" blah="qux" />
这很糟糕:<img class="foo bar" blah="qux" /> 因为它缺少 img-fluid.

我尝试了否定前瞻:<img.*(?!fluid) 不起作用。

我该怎么做?

<img(?:(?!fluid).)*\/>

Here就是一个例子。

在这种情况下,一种方便的模式是将 .* 替换为 (?:(?!<arbitrary excluded pattern>).)*

(?: 启动一个非捕获组。 ?: 部分可以省略,它将成为一个捕获组,您可能不需要。

然后使用否定前瞻,然后是任何字符的 .。 non-capturing 组后面有 *,表示整个组有 0 个或多个实例。整个事情的行为类似于 .*,只是如果 <arbitrary excluded pattern> 一路出现,它就不会匹配。