[英]Replace last occurrence of a word within a string
I am trying to replace last occurrence of a word within string. 我正在尝试替换字符串中单词的最后一次出现。
This doesn't work: 这不起作用:
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);
This works fine, though: 不过,这可以正常工作:
var str = '-44-test alue-1564test alue';
str = str.replace(/test alue(?![\s\S]*test alue)/, 'aa');
alert(str);
Why doesn't the first version work, and how can I fix it? 为什么第一个版本不起作用,如何解决?
I have modified your input string and regexp code. 我已经修改了您的输入字符串和正则表达式代码。 First, modified
[\\s\\S]*Kenneth Auchenberg
and g
was missing Kenneth Auchenberg';
首先,修改的
[\\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);
If you're sure the name you wanna match is at the end of the string, you can use: 如果您确定要匹配的名称位于字符串的末尾,则可以使用:
/(Kenneth Auchenberg)\s*$/
Note: there's a typo in your code. 注意:您的代码中有错别字。 The last
Kenneth Auchenberg
is written as Kenneth Auchenber
(with a missing 'g' at the end). 最后一个
Kenneth Auchenberg
Kenneth Auchenber
( Kenneth Auchenberg
被写为Kenneth Auchenber
( Kenneth Auchenber
( Kenneth Auchenber
带有“ g”)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.