使用RegEx获取最后一次出现的字符串

时间:2014-05-29 12:30:17

标签: javascript regex

假设我的文字如下:

  

购买这款手机的一个令人信服的理由可能是它的显示器。当然,我们会喜欢全高清,但是由于价格很高,我们再次闭嘴。屏幕响应也很好。

我只想获取文本中最后一次出现“the”字符串的索引。(使用RegExp)

var re = new RegExp("\\b"+"the"+"\\b",'g');
var pos = re.lastIndex;

仅给出字符串the的第一次出现的位置。
有什么建议?

3 个答案:

答案 0 :(得分:4)

为什么需要正则表达式来查找子串的最后一次出现。您可以使用原生.lastIndexOf()方法:

re.lastIndexOf("the");

答案 1 :(得分:1)

单向;

var pos = -1;
while ((match = re.exec(str)) != null)
    pos = match.index;

alert("last match found at " + pos);

答案 2 :(得分:0)

正则表达式是/\bthe\b(?!(.|\n)*\bthe\b)/(没有全局标志!)...意思是""其后面没有""。

测试:

var re = new RegExp('\\b' + input + '\\b(?!(.|\\n)*\\b' + input + '\\b)');
var pos = re.test(str) ? re.exec(str).index : -1;