gpt4 book ai didi

javascript - 正则表达式更改字符串中的某些单词

转载 作者:行者123 更新时间:2023-11-30 16:06:11 24 4
gpt4 key购买 nike

我正在努力了解正则表达式。我认为以下内容会起作用,但不幸的是它不起作用。

我想做的事情:

给定一个字符串 str(见下文)我想将任何不是 shadegravel 的词替换为 砾石

str = "gravel shade water grass people water shade";
output = str.replace(/([^gravel|^shade])/g,' gravel ');

output 应该等于 gravel shade gravel gravel gravel shade。我所拥有的已经足够接近了,但有点偏离。

最佳答案

您的 ([^gravel|^shade]) 匹配任何一个不是 gr 的字符并将其捕获到组 1 中, a, v, e, l, |, ^ ,并将它们全部替换为 gravel

你可以使用

/\b(?!(?:shade|gravel)\b)\w+\b/g

参见 regex demo

图案说明:

  • \b - 前导词边界
  • (?!(?:shade|gravel)\b) - 否定前瞻,将排除匹配的整个词 shadegravel
  • \w+ - 1+个单词字符(属于[A-Za-z0-9_]集)
  • \b - 尾随单词边界。

var str = 'gravel shade water grass people water shade';
var result = str.replace(/\b(?!(?:shade|gravel)\b)\w+\b/g, 'gravel');
document.body.innerHTML = result;

关于javascript - 正则表达式更改字符串中的某些单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37013868/

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