You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写正则表达式匹配代码注释且不误匹配URL内的//字符

正则调整方案

修改后正则

你只需要给单行注释的匹配规则新增负向后顾断言,过滤掉前面紧跟冒号的//序列即可,调整后的完整正则如下:

/(\/\*([^*|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)|(?<!:)\/\/.*/g

核心调整逻辑

  • 新增的(?<!:)是负向后顾断言,限定仅匹配前方没有紧跟冒号:的//
  • URL中的//必然跟随在http:/https:/ftp:等协议标识的冒号之后,会被该规则直接排除,不会被误识别为注释

完整测试代码

var sample = `Hello //this is a test
 http://google.com
 //second
 third
 https://test.com`;
var regex = new RegExp(
  /(\/\*([^*|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)|(?<!:)\/\/.*/g
);
console.log(sample.match(regex));

运行输出结果为你期望的["//this is a test", "//second"]

兼容性说明

负向后顾断言是ES2018新增语法,所有现代浏览器、Node.js 10+版本均原生支持,无需额外适配。


内容的提问来源于stack exchange,提问作者s_guha96

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 00:15:04