【发布时间】:2013-08-19 01:47:07
【问题描述】:
我需要一些 Regexp 对象的 Python 方法的模拟 - 搜索。它具有三个参数:文本、开始位置和结束位置,并返回具有开始和结束字段的 Match 对象。
我有一个函数,它返回 Match 对象,但我不知道如何在这个函数中实现 endIndex。我担心性能并且非常不愿意使用子字符串方法。 在我的情况下,是否有可以在 Javascript 中使用的功能? 另一个问题是有没有提供类似于 Python re 模块的 API 的库?
function search(str, startIndex, endIndex) {
var re = new RegExp(this.matcher.source, 'g' + (this.matcher.ignoreCase ? 'i' : '') + (this.matcher.multiLine ? 'm' : ''));
re.lastIndex = startIndex || 0;
var value = re.exec(str);
if (!value)
return null;
var start = re.lastIndex - value[0].length;
var end = re.lastIndex;
return new Match(start, end);
}
【问题讨论】:
-
你到底想做什么?对字符串的特定部分执行正则表达式搜索?您应该只使用子字符串,它不会成为性能问题
-
我需要将一些 Python 文本搜索引擎移植到 JavaScript 中。在这个函数中,我需要在某些索引之间的字符串的特定部分内执行正则表达式搜索。
-
然后试试
substring看看它是如何执行的,把它放在你的函数的开头:str = str.substring(startIndex, endIndex);然后做剩下的事情(也许首先验证starIndex和endIndex)
标签: javascript python regex