gpt4 book ai didi

javascript - 使用正则表达式有条件地替换字符串?

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

我需要替换文件中所有出现的@example/,除非完全匹配是@example/is

目前我有这段代码:

 let updated = s.replace(/@example\//g, replacement);

然而,这将更新所有出现的事件,包括带有 @example/is 的事件。我们如何排除文件中出现的 @example/is

附录

我只是粘贴我使用的脚本(包含了很好的答案)来执行更新,以防其他人需要做这样的事情:

const fs = require("fs");
const globby = require("globby");
globby("./test/**/*.ts")
.then(paths => {
paths.forEach(update);
})
.catch(e => console.log(e));

function update(path) {
let replacement = "@ex/";
let js = fs.readFileSync(path, "utf8");
js = js.replace(/@example\/(?!is)/g, replacement)
fs.writeFileSync(path, js);
}

最佳答案

您可以使用 negative lookahead assertion :

let updated = s.replace(/@example\/(?!is)/g, replacement)

(?!is) 是一个否定的先行断言,当 is 出现在 @example/

之后时,匹配将失败

关于javascript - 使用正则表达式有条件地替换字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51407134/

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