我想替换句子中所有出现的字符串,但不应替换以相同字符串开头的其他单词。示例如果字符串是“ abc bb bb bbcv cc ccv”,而我想用“”替换bb和cc,那么我的预期输出应该是“ abc bbcv cc”。
我正在使用.replace方法,但是它也在单词“ bbcv”和“ ccv”中替换了bb和cc。
答案 0 :(得分:0)
使用replace
并匹配单词边界\b
的任一侧:
const str = "abc bb bb bbcv cc ccv";
const res = str.replace(/\b(bb|cc)\b/g, "");
console.log(res);
您也可以去除多余的空格:
const str = "abc bb bb bbcv cc ccv";
const res = str.replace(/\b(bb|cc)\b/g, "").replace(/ {2,}/g, " ");
console.log(res);
答案 1 :(得分:0)
尝试使用在字词边界bb
之前和之后的交替以及一个或多个可选空白来检查模式cc
或\b
。
Regex
-/\b([\s+]?bb|cc[\s+]?)\b/ig
const str = "abc bb bb bbcv cc ccv";
const pattern = /\b([\s+]?bb|cc[\s+]?)\b/ig;
const replacedString = str.replace(pattern, function (match, p1) {
return '';
});
console.log(replacedString);
答案 2 :(得分:0)
这是一种较短的方法,它删除每个space (\s)
,然后删除单词bb
或cc
:
var str = 'abc bb bb bbcv cc ccv';
var res = str.replace(/\s(bb|cc)\b/g, '');
console.log(res);