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>
一路出现,它就不会匹配。
我想在我的标记中找到所有 <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>
一路出现,它就不会匹配。