SQLite中的更多字符串功能
#sql #database #sqlite

sqlite包含基本文本功能,例如instrsubstrreplace(甚至在以后的版本中,甚至是trim),这可以使您远。但是我一直想要一个更完整的集合,例如Postgresql,Python或Go中的一套。

因此,我已经创建了一个sqlean-text扩展程序,可提供25个字符串函数,从slicecontainscountsplit_parttranslatetranslate

注意。与其他DBM不同,向SQLITE添加扩展是轻而易举的。下载一个文件,运行一个数据库命令 - 您很高兴去。

许多函数与后Gostgres兼容(即它们具有与PostgreSQL中相同的别名和逻辑)。从sqlite迁移到postgresql,反之亦然。

Text functions

sqlite已经具有一些文本功能,但是使用完整集的功能要好得多。

请注意,某些与Unicode相关的功能(例如upperlower)在单独的unicode扩展中。正则表达功能在单独的regexp扩展中。

子字符串和切片

text_substring(str, start [,length])

start位置开始提取length字符的子字符串。

text_slice(str, start [,end])

start位置提取一个子字符串,包括end位置非包容。

text_left(str, length)

从字符串的开头提取length字符的子字符串。

text_right(str, length)

从字符串的末端提取length字符的子字符串。

搜索和匹配

text_index(str, other)

返回原始字符串中other子字符串的第一个索引。

text_last_index(str, other)

返回原始字符串中other子字符串的最后一个索引。

text_contains(str, other)

检查字符串是否包含other子字符串。

text_has_prefix(str, other)

检查字符串是否以other子字符串开头。

text_has_suffix(str, other)

检查字符串是否以other子字符串结束。

text_count(str, other)

计算原始字符串中包含的other子字符串多少次。

分开并加入

text_split(str, sep, n)

通过分隔符将字符串拆分并返回第n部分。

text_concat(str, ...)

串联字符串。

text_join(sep, str, ...)

使用分离器加入字符串。

text_repeat(str, count)

将字符串与给定的次数连接在一起。

修剪和垫子

text_ltrim(str [,chars])

从字符串的开头修剪某些字符。

text_rtrim(str [,chars])

从字符串的末端修剪某些字符。

text_trim(str [,chars])

从字符串的开头和末端修剪某些字符。

text_lpad(str, length [,fill])

通过准备某些字符,将字符串粘贴到指定的长度上。

text_rpad(str, length [,fill])

通过附加某些字符将字符串粘贴到指定的长度上。

其他修改

text_replace(str, old, new [,count])

用原始字符串中的new子来代替old子字符串,但不超过count次。

text_translate(str, from, to)

替换了将from中一个字符与to集中的相应字符匹配的每个字符串字符。

text_reverse(str)

逆转字符串中字符的顺序。

字符串属性

text_length(str)

返回字符串中的字符数。

text_size(str)

返回字符串中的字节数。

text_bitsize(str)

返回字符串中的位数。

安装和用法

  1. 下载latest release

  2. 与sqlite命令行接口一起使用:

sqlite> .load ./text
sqlite> select reverse('hello');

请参阅How to Install an Extension使用IDE,Python等。

请参阅Extension Documentation以获取参考。

在Twitter上关注@ohmypy以跟上新帖子