gpt4 book ai didi

javascript - 仅当子模式不匹配时才匹配正则表达式

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:39:31 24 4
gpt4 key购买 nike

我正在尝试匹配文件中的 C 风格注释,但前提是注释不是以 @ 引入的特定标签开头

例如来自

/* some comment to match */
/* another comment.
this should match also */
/*@special shouldn't match*/

这是否可以仅使用正则表达式?

我正在尝试使用正则表达式的 JavaScript 实现。

最佳答案

/\*\s*(?!@)(?:(?!\*/).)*\*/

分解为:

/\*               // "/*"\s*               // optional space(?!@)             // not followed by "@"(?:               // don't capture...   (?!\*/).       // ...anything that is not "*/")*                // but match it as often as possible\*/               // "*/"

在“全局”和“dotall”模式下使用(例如,点也应该匹配新行)

通常的警告词:与所有使用正则表达式执行的解析作业一样,这将在嵌套模式和损坏的输入上失败。

emk points out a nice example的(否则有效)输入将导致此表达式中断。这没办法,正则表达式不是用来解析的。如果您确信这样的事情永远不会出现在您的输入中,那么正则表达式可能仍然适合您。

关于javascript - 仅当子模式不匹配时才匹配正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/681379/

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