Javascript 替换字符串中最后出现的单词
我试图替换字符串中最后出现的单词 这不起作用:Javascript 替换字符串中最后出现的单词,javascript,regex,Javascript,Regex,我试图替换字符串中最后出现的单词 这不起作用: var str = '@[Kenneth Auchenberg](contact:1) @[kenneth@auchenberg.dk](contact:7) Kenneth Auchenber'; v = str.replace(/Kenneth Auchenberg(?![sS]*Kenneth Auchenberg?)/ , '@[Kenneth Auchenberg](contact:1)'); alert(v); 不过,这很管用: va
var str = '@[Kenneth Auchenberg](contact:1) @[kenneth@auchenberg.dk](contact:7) Kenneth Auchenber';
v = str.replace(/Kenneth Auchenberg(?![sS]*Kenneth Auchenberg?)/ , '@[Kenneth Auchenberg](contact:1)');
alert(v);
不过,这很管用:
var str = '-44-test alue-1564test alue';
str = str.replace(/test alue(?![\s\S]*test alue)/, 'aa');
alert(str);
为什么第一个版本不起作用,我如何修复它?搜索:
Kenneth Auchenberg?(?!g?\]\\(联系)
替换:@[Kenneth Auchenberg](联系人:1)
请参阅。我已修改了您的输入字符串和regexp代码。 首先,修改的
[\s\s]*Kenneth Auchenberg
和g
缺失Kenneth Auchenberg';
var str = '@[Kenneth Auchenberg](contact:1) @[kenneth@auchenberg.dk](contact:7) Kenneth Auchenberg';
v = str.replace(/Kenneth Auchenberg(?![\s\S]*Kenneth Auchenberg?)/ , '@[Kenneth Auchenberg](contact:1)');
alert(v);
var str = '-44-test alue-1564test alue';
str = str.replace(/test alue(?![\s\S]*test alue)/, 'aa');
alert(str);
如果确定要匹配的名称位于字符串末尾,则可以使用:
/(Kenneth Auchenberg)\s*$/
注意:您的代码中有一个输入错误。最后一个
Kenneth Auchenberg
写为Kenneth Auchenber
(末尾缺少一个“g”)您能显示您想要的输出吗?Kenneth Auchenberg(?[sS]*Kenneth Auchenberg?)
将名称(后面不跟esses)与名称再次匹配,并带有可选的g。这令人困惑,请告诉我们您想要什么输出。仍然没有运气,所需的输出是@[Kenneth Auchenberg](联系方式:1)@[kenneth@auchenberg.dk](联系人:7)@[Kenneth Auchenberg](联系人:1)@DhruvPatel:这个似乎很好用,我看不出有什么问题。你能添加更清晰的例子吗?你能编辑这个提琴吗?@DhruvPatel修复了错误,添加了演示。:)