gpt4 book ai didi

javascript - 使用 javascript 正则表达式查找不在引号内的注释

转载 作者:行者123 更新时间:2023-12-01 01:07:30 25 4
gpt4 key购买 nike

我想查找SQL代码中的所有注释,例如:

select 1 --remark to remove

一个简单的正则表达式是:

/--.+/g

但如果它在引号内则不然,例如:

select 1, '--do not remove code'

select 1, 'hamm --do not remove code'

select 'hamm --do not remove code',1

最佳答案

您可以使用交替来匹配您不想查找的内容并在组中捕获您想要查找的内容

'[^']*--[^']*'|(--.+)

这将匹配

  • [^']*--[^']*' 匹配不 ' 0 次以上,然后 -- 又不匹配 ' 0 次以上
  • |
  • (--.+) 捕获第 1 组匹配的 -- 以及字符串的其余部分

Regex demo

[
"select 1 --remark to remove",
"select 1, '--do not remove code'",
"select 1, 'hamm --do not remove code'",
"select 'hamm --do not remove code',1",
].forEach(s => {
let res = s.match(/'[^']*--[^']*'|(--.+)/);
if (undefined !== res[1]) {
console.log(res[1]);
}
});

关于javascript - 使用 javascript 正则表达式查找不在引号内的注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55495723/

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