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

我试图在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”function,您需要“自己滚动”。

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

文档

正如James建议的那样,使用LIKE运算符,然后使用正则表达式对结果进行java搜索

假设您希望从联系人表中获取以+或0-9范围开头的电话号码。

 REGEXP '^[0-9].*|[+].*' 

Sqlite3查询

 select * from Contact where name REGEXP '^[0-9].*|[+].*'