使用RegExp获取字符串的最后一次出现
Get the last occurrence of a string using RegExp
假设我的文本在下面:
购买这款手机的一个令人信服的原因可能是它的显示屏。当然,我们会喜欢全高清,但又一次,我们闭嘴,因为有力的价格标签。屏幕响应性也很好。
我只想获得"the"字符串在我的文本中最后出现的索引。(使用RegExp)
var re = new RegExp("''b"+"the"+"''b",'g');
var pos = re.lastIndex;
只给出字符串the
第一次出现的位置。
有什么建议吗?
为什么需要正则表达式来查找子字符串的最后一次出现。您可以使用本地.lastIndexOf()
方法:
re.lastIndexOf("the");
单向;
var pos = -1;
while ((match = re.exec(str)) != null)
pos = match.index;
alert("last match found at " + pos);
正则表达式为/'bthe'b(?!(.|'n)*'bthe'b)/
(没有全局标志!)…意思是"the"后面不跟"the"
var re = new RegExp('''b' + input + '''b(?!(.|''n)*''b' + input + '''b)');
var pos = re.test(str) ? re.exec(str).index : -1;
这是一个有效的解决方案,即使是非全局正则表达式:
function regexLastIndexOf(str, regex) {
regex = regex.global
? regex
: new RegExp(regex.source, 'g' + (regex.ignoreCase ? 'i' : '') + (regex.multiLine ? 'm' : ''));
var lastIndexOf = -1;
var nextStop = 0;
var result;
while ((result = regex.exec(str)) != null) {
lastIndexOf = result.index;
regex.lastIndex = ++nextStop;
}
return lastIndexOf;
}
相关文章:
- Javascript匹配以从URL中删除部分文件名-替换最后一次出现的内容
- 正在查找最后一次出现的文本
- JavaScript只有在最后一次被调用时才运行函数
- 将具有两个此类子字符串的字符串中的第一个子字符串生成与正则表达式匹配,正则表达式通常默认匹配最后一个子字符串
- 字符串拆分并获取第一次和最后一次出现
- Regex-从第二次出现到最后一次出现
- 我如何可以忽略以前的选择,只写最后一次选择
- 异步mongodb更新循环中最后一次迭代后的重定向
- 链接超时会导致最后一次超时被拒绝
- 变量在循环的最后一次迭代中变为未定义
- 将匹配字符串中最后一次出现的点的正则表达式
- 删除/隐藏链接后最后一次出现的字符串
- 删除javascript中最后一次出现的字符串
- Javascript Regex匹配字符串最后一次出现后的所有内容
- 在字符串中特定字符最后一次出现之前插入
- regex-查找最后一次出现之前的字符串
- 使用javascript replace()来匹配字符串的最后一次出现
- 使用RegExp获取字符串的最后一次出现
- 如何获得子字符串从字符串后最后一次看到的特定字符在javascript
- 如何在最后一次出现特定字符后删除字符串的特定部分