我正在尝试编写一个脚本,用反引号和分号替换每个第二个反引号。请参阅下面的预期行为:
"`Here is my string`"
需要变成:
"`Here is my string`;"
我在堆栈上找到了一些有用的答案,例如 this one 、 this one 和 this one 但是当我尝试在 this solution 上进行替换时,它会选择所有出现的事件,而不是每隔一次。而在 this solution 上,它选择每一次出现,而不是每一次。
截至目前,我已经尝试...
str.replace(/\`.*?\`*/g, '`;')
...也...
str.replace('\w*\`\b/gm, '`;')
两者都让我很接近,但我似乎无法单独获得每个第二个反引号。
最佳答案
如果你想每隔一秒替换一次反引号,你可以使用一个捕获组和一个 negated character class
在替换中,您可以使用 $1
;`
(`[^`]*)`
说明
(
捕获组`[^`]*
匹配反引号,使用否定字符类匹配 0+ 次除反引号之外的任何字符 )`
关闭第 1 组并匹配反引号 Regex demo
const regex = /(`[^`]*)`/g;
const str = `\`Here is my string\` this is another test \`Here is my string\``;
const result = str.replace(regex, `$1\`;`);
console.log(result);
关于javascript - 使用正则表达式查找并替换字符串中的每一秒反引号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57444177/