变量中有一串书写/文字:
var copypaste, replaced;
var verbdb = ["keep","know","enjoy"];
var arrayLength = verbdb.length;
for (var i = 0; i < arrayLength; i++) {
copypaste = "One of the reasons first_name keep waking up at night, is blah blah blah. Try this, let first_name know and see blah blah blah. Remember that first_name enjoy being challenged and blah blah blah.";
replaced = copypaste.replace(RegExp("[^let]? first_name " + verbdb[i] + "(\s|\.)","g")," first_name " + verbdb[i] + "_object_s\$1");
}
我想从replaced
变量中获取的内容是,仅当first_name前面有单词let
时才排除。
&#34; first_name keep_object_s在晚上醒来的原因之一,是等等等等。试试这个,让first_name知道,看看等等等等。请记住,first_name enjoy_object_s受到挑战,等等等等等等。&#34 ;;
所以在这个例子中:
_object_s
,_object_s
替换。答案 0 :(得分:1)
你可以试试这个:
(?:\b)(?!let)(?=\w+\sfirst_name\s+(know|keep|enjoy))(\w+ \w+)\s+(\w+)
const regex = /(?:\b)(?!let)(?=\w+\sfirst_name\s+(know|keep|enjoy))(\w+ \w+)\s+(\w+)/g;
const str = `One of the reasons first_name keep waking up at night, is blah blah blah. Try this, let first_name know and see blah blah blah. Remember that first_name enjoy being challenged and blah blah blah`;
const subst = `$2 _object_s`;
const result = str.replace(regex, subst);
console.log(result);
&#13;