我正在使用 Java,我得到了一个 db、SQLite 3.8.5、2 列ID(int key)和note(string). 我希望能够查询包含多个单词的所有笔记。
示例: Note1:“你好,这部电影是 foo”
Note2:“你好,这部电影是黄色的”
Note3:“你好,foo 这部电影是”(尤达,不要输入!)
给定用户过滤词:“foo” “电影”
查询结果应为注 1 和注 2。
这个正则表达式有效,但我似乎无法找到如何将正则表达式作为查询询问: .*(?=.*movie)(?=.*foo).*
BR
除了上面的答案,Java 中的解决方案,为了完整性。您必须为 REGEXP 运算符应该工作的每个连接执行此操作。
// Create regexp() function to make the REGEXP operator available
Function.create(connection, "REGEXP", new Function() {
@Override
protected void xFunc() throws SQLException {
String expression = value_text(0);
String value = value_text(1);
if (value == null)
value = "";
Pattern pattern=Pattern.compile(expression);
result(pattern.matcher(value).find() ? 1 : 0);
}
});
Run Code Online (Sandbox Code Playgroud)