我正在使用带有Redis
npm包的node.js脚本来检索匹配模式Animals:toFeed:*
的所有Redis键。匹配的一个示例是关键字Animals:toFeed:17ed160f59c5b31caf7e741a4e62cb7785414cd
。
使用Redis 4.0.11、Node.js 8.11.3、Redis 2.8.0 npm包
async function scanAsync(cursor, pattern, results) {
return redis.scanAsync(cursor, 'MATCH', pattern, 'COUNT', '10')
.then(function(reply) {
cursor = reply[0]
if(cursor === '0') {
console.log('Scan complete')
} else {
console.log('Match #', i)
let keys = reply[1]
keys.forEach(function(key, i) {
results.push(key)
})
return scanAsync(cursor, pattern, results)
}
})
}
let keys = []
let prefix = 'animals:toFeed:*'
await scanAsync('0', prefix, keys)
当光标等于“0”
时,您会忘记将键添加到结果
中,但您应该始终添加这些键。
您可以将代码考虑如下:
async function scanAsync(cursor, pattern, results) {
return redis.scanAsync(cursor, 'MATCH', pattern, 'COUNT', '10')
.then(function(reply) {
let keys = reply[1]
keys.forEach(function(key) {
results.push(key)
})
cursor = reply[0]
if(cursor === '0') {
console.log('Scan complete')
} else {
return scanAsync(cursor, pattern, results)
}
})
}
问题内容: 从那时起,我一直在TutorialsPoint上查看代码,此后一直困扰着我……看一下这段代码: 此代码成功打印: 但是根据正则表达式,为什么它不返回其他可能的结果,例如: 要么 如果此代码不适合这样做,那么我该如何编写一个可以找到所有可能匹配项的代码? 问题答案: 这是因为的贪婪,随之而来的是回溯。 字串: 正则表达式: 我们都知道那是贪婪的,并且尽可能匹配所有字符。因此,第一个匹配所
问题内容: 我有一个.DRL文件,其中有10条规则。插入事实后,可能会匹配一些规则-如何找出以编程方式匹配的规则? 问题答案: 请注意,此答案对不超过5.x的Drools版本有效。 如果您已升至6或更高,请查看@ melchoir55的修改后答案。我还没有亲自测试过,但是我相信它会起作用。 若要跟踪规则激活,可以使用AgendaEventListener。下面是一个示例,可在此处找到: https
问题内容: 有没有办法确保子句中的所有值都匹配? 例: 我可以将IN用作:。 我需要它像跨多个行一样工作。 更新: 我需要它来列出数据库中符合指定参数的公司。公司和分类法之间存在很多关系。我正在使用Yii框架。这是我的控制器的代码: 问题答案: 您可以执行以下操作: 如果您提供架构和一些示例数据,我可以提供一个更相关的答案。 SQL小提琴示例
我只想替换字符串中的单词,如果单词字符或单词前后没有连字符。 文本: 替换后的预期结果: 正则表达式: < li >正则表达式当前仅匹配第一个匹配项(< code>#后的按钮)。我需要做什么来匹配所有事件? < li >如何在Java中将< code>button替换为< code>text或任何其他单词? 我读过主题我能在Java regex中替换组吗?,但是我真的不明白如何为我的特殊情况使用示
问题内容: 我想通过搜索突出显示所有匹配的单词。我写了代码,但是不能使用循环。当我搜索单词时,我的应用程序会找到单词并仅突出显示第一个单词。这是我的代码 我很快就很新。抱歉,编码错误。我的代码找到匹配项计数,但是如何突出显示所有匹配项,谢谢 问题答案: 基于NSRegularExpression的强制性解决方案。
我试图找出我的字符串是否包含从a到z的所有字母 我们可以通过其他方法解决这个问题,但我正在尝试仅使用模式和匹配器来解决它。