我正在尝试编写一个脚本,用反引号和分号替换每个第二个反引号。请参阅下面的预期行为:

"`Here is my string`"

需要变成:
"`Here is my string`;"

我在堆栈上找到了一些有用的答案,例如 this onethis onethis 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/

    10-13 03:22