如何在sqlite中使用regexp

use*_*307 6 regex android-sqlite

请提示,如何在SQLite中使用REGEXP?

实现:

SELECT field FROM table WHERE field REGEXP '123'
Run Code Online (Sandbox Code Playgroud)

它不起作用. Error: no such function: REGEXP

Ram*_*kee 8

目前正在为Ubuntu 12.04中的Web应用程序开发sqlite3 + php.我也遇到了同样的问题然后经过研究我发现我们需要为sqlite3安装一个pcre软件包.我们在这里如何去做

  1. apt-get install sqlite3-pcre
  2. 然后转到sqlite3命令行 sqlite3 test.db
  3. 运行命令 .load /usr/lib/sqlite3/pcre.so
  4. 测试: SELECT url FROM table_name where url REGEXP '^google.*';

遵循这3个步骤后,它对我来说很好.如果对此有误,请纠正我.我希望它会对你有所帮助

谢谢


laa*_*lto 6

你不能使用它.

首先,根据文档,您需要一个实现它的函数:

REGEXP运算符是regexp()用户函数的特殊语法.默认情况下没有定义regexp()用户函数,因此使用REGEXP运算符通常会导致错误消息.如果在运行时添加了名为"regexp"的应用程序定义的SQL函数,则"X REGEXP Y"运算符将实现为对"regexp(Y,X)"的调用.

无法在Android SQLite中安装用户定义的函数.

考虑是否可以将正则表达式编写为GLOBLIKE模式.

  • 有一种方法可以使用NDK在Android SQLite中安装用户定义的函数 (2认同)