如何在安卓中使用正则表达式搜索SQLite数据库?

3

我正在尝试在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 数据库时,最好的正则表达式执行方式是什么?
2个回答

5
在sqllite中,默认情况下不包含"REGEXP"函数,您需要自行创建该函数。
但是,只要您的搜索相对简单,"LIKE"运算符应该可以满足您的需求。
请参阅文档

6
在安卓系统中如何自定义正则表达式?我找不到相关方法。 - Kalimah

0
如James所建议的那样,使用LIKE运算符,然后在结果上使用正则表达式进行Java搜索。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接