加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

用sqlite3中的REGEXP替换字符串的一部分

发布时间:2020-12-12 19:12:03 所属栏目:百科 来源:网络整理
导读:我安装了REGEX支持 apt-get install sqlite3 sqlite3-pcre 现在我可以在bash控制台上的查询中使用REGEX了 DB="somedb.db"REGEX_EXTENSION="SELECT load_extension('/usr/lib/sqlite3/pcre.so');"sqlite3 $DB "$REGEX_EXTENSION select * from sometable wher
我安装了REGEX支持
apt-get install sqlite3 sqlite3-pcre

现在我可以在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]+$'"

但是如何使用正则表达式使用sqlite查询更新字符串?

默认情况下,Sqlite不提供regex_replace函数.您需要将其加载为扩展名.以下是我设法做到的方法.

Download this C code for the extension (icu_replace)

使用编译它

gcc --shared -fPIC -I sqlite-autoconf-3071100 icu_replace.c -o icu_replace.so

并且在sqlite3 runn下面的命令post上面提到的命令已经运行并创建了一个文件icu_replace.so

SELECT load_extension(' path to icu_replace.so','sqlite3_extension_init') from dual;

在此之后,您将能够使用以下功能: –

select regex_replace('bTheb',x,'M') from dual;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读