当前位置: 首页 > 面试题库 >

如何在Android中使用正则表达式搜索sqlite数据库?

江志业
2023-03-14
问题内容

我正在尝试在sqlite中使用正则表达式搜索数据库。这是我的代码:

cursor = db.rawQuery("SELECT _id, employee FROM employees WHERE employee REGEXP ?", 
                    new String[]{"%" + prepareSearchText()  + "%"});
    adapter = new SimpleCursorAdapter(
            this,
            R.layout.search_row, 
            cursor, 
            new String[] {"_id", "employee "}, 
            new int[] {R.id.idField, R.id.nameField});
    setListAdapter(adapter);

但是我收到此错误:

Caused by: android.database.sqlite.SQLiteException: no such function: REGEXP.

我之前在MySQL中使用过函数REGEXP,所以我认为它存在于sqlite中,但显然不存在。

在Android中查询sqlite数据库时执行正则表达式的最佳方法是什么?


问题答案:

在sqllite中,默认情况下不包括“ REGEXP”功能,您需要“自己滚动”。

但是,只要搜索相当简单,“ LIKE”运算符就可以执行您想要的操作。

文档



 类似资料:
  • 问题内容: 我需要找到与特定正则表达式匹配的所有软件包: 基本上,包的名字应该与启动,并有后话。例如,以下软件包应匹配: 我可以做,但是有很多我不感兴趣的软件包。 是否提供通过正则表达式查找软件包的方法?或者,我应该只是通过管道传递结果来过滤掉无关的包? 此外,可能是一个的“交集” ,并有助于太。 问题答案: alecxe,我相信这是您要寻找的一线客。 如下面评论中铬酸盐所建议的那样,您可以根据需

  • 问题内容: 我有一个模式定义为的猫鼬模型- 并且模型定义为- 现在我想从请求对象参数中搜索标题,标签,描述字段,例如 现在,我如何确保也包括任何在标题或描述中找到该术语的结果,而不仅是两个结果都存在。另外,如何在标签数组中搜索匹配的字符串 问题答案: 您可以在猫鼬中使用 $ or 运算符返回匹配项 $ or http://docs.mongodb.org/manual/reference/oper

  • 问题内容: 我正在使用正则表达式在字符串数组中向前搜索,如下所示: 请注意,在上述实现中,我保存了和以便进行连续搜索。 无论如何,现在我想从该[line,offset] 向后搜索 。 我的问题:有没有办法使用正则表达式有效地向后搜索?如果没有,那有什么替代方法? 澄清: 通过 向后 我的意思是找到以前的比赛。 例如,假设我在搜索“ dana” 并获得第二名。如果我再做一次,我将 向前 搜索并获得第

  • 问题内容: 我试图使用spannableString和正则表达式在Android中使用此函数为字符串的一部分上色: 因为函数replace()返回一个字符串,所以我无法获得彩色的字符串。我的问题是:使用正则表达式为文本上色的最佳方法是什么? 问题答案: 9月10日更新-更改所有出现的目标字符串 这样的通用方法将起作用: 。

  • 问题内容: 我需要在给定正则表达式的字符串中找到所有匹配项。我一直在这样做,直到遇到一个案例,它没有达到我的预期。例如: 在这种情况下,返回我需要的内容(最长的匹配项),但是行为却有所不同,尽管文档暗示它应该是相同的: 匹配所有出现的模式,而不仅仅是第一个。 为什么行为不同? 如何获得with (或其他方式)的结果? 问题答案: 好的,我从文档中查看发生了什么…… 如果该模式中存在一个或多个组,则