我安装了REGEX支持
apt-get install sqlite3 sqlite3-pcre
Run Code Online (Sandbox Code Playgroud)
现在我可以在bash控制台上的查询中使用REGEX了
DB="somedb.db"
REGEX_EXTENSION="SELECT load_extension('/usr/lib/sqlite3/pcre.so');"
sqlite3 $DB "$REGEX_EXTENSION select * from sometable where name REGEXP '^[a-z]+$'"
Run Code Online (Sandbox Code Playgroud)
但是如何使用正则表达式使用sqlite查询更新字符串?
默认情况下,Sqlite不提供regex_replace函数。您需要将其作为扩展加载。这是我设法做到的方式。
使用它编译
gcc --shared -fPIC -I sqlite-autoconf-3071100 icu_replace.c -o icu_replace.so
Run Code Online (Sandbox Code Playgroud)
并在sqlite3 runn下面的命令发布后,上述命令已运行并创建文件icu_replace.so
SELECT load_extension(' path to icu_replace.so', 'sqlite3_extension_init') from dual;
Run Code Online (Sandbox Code Playgroud)
之后,您将可以使用以下功能:
select regex_replace('\bThe\b',x,'M') from dual;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5920 次 |
| 最近记录: |