假设我的文字如下:
购买这款手机的一个令人信服的理由可能是它的显示器。当然,我们会喜欢全高清,但是由于价格很高,我们再次闭嘴。屏幕响应也很好。
我只想获取文本中最后一次出现“the”字符串的索引。(使用RegExp)
var re = new RegExp("\\b"+"the"+"\\b",'g');
var pos = re.lastIndex;
仅给出字符串the
的第一次出现的位置。
有什么建议?
答案 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;