我正在使用Java,并且有一个数据库,SQLite 3.8.5,带有2个列,ID(int key)note(string)
我希望能够查询包含多个单词的所有注释。

例:
注意1:“您好,这部电影是foo”
注意2:“你好,这部电影是黄色的”
注意3:“你好,这部电影是foo”(Yoda,请不要输入!)
按用户指定的过滤词:“ foo”“ movie”

查询结果应为注释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);
  }
});

10-07 16:08
查看更多