gpt4 book ai didi

regex - 如果其中存在某个子字符串,如何防止正则表达式匹配?

转载 作者:行者123 更新时间:2023-12-02 05:38:21 25 4
gpt4 key购买 nike

HTML 注释可能会使用内联 JavaScript 作为不支持 JS 代码的旧浏览器的特殊 block 。这些 block 看起来像这样:

<!--
some js code
//-->

我想在 JS 代码中区分“真实”的 html 注释。我写了这个正则表达式:

/<!--[^//]*?-->/g

所以我想排除里面有双斜杠的匹配,但是正则表达式把//当成//的字符集,而不是整个双斜杠 //。我能做什么?

最佳答案

如您所述,字符类仅匹配单个字符,因此您不能在此处使用它们。但是你可以使用 negative lookahead assertions :

/<!--(?:(?!//)[\s\S])*-->/g

(假设这是 JavaScript)。

解释:

<!--     # Match <!--
(?: # Try to match...
(?!//) # (asserting that there is no // ahead)
[\s\S] # any character (including newlines)
)* # ...any number of times.
--> # Match -->

关于regex - 如果其中存在某个子字符串,如何防止正则表达式匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11357318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com