sqlite3 regexp不匹配反向字符类

2024-05-13 19:07:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用SQLiteStudio和SQLite的DB浏览器设计了一个sqlite3数据库。两者都通过Qt regexp方法实现REGEXP,我使用Qt regexp方法进行查询和CHECK约束

然后,我继续编写一个python脚本,它必须手动加载一个regexp扩展,为此,我在sqlite3-pcre包和the one given in the sqlite3 source code repository(显然符合POSIX)中尝试了一个

后者不能正确匹配倒排字符组,例如regexp('[^a]', 'a')将提供匹配,即使字符串中唯一的字符是“a”。也许我遗漏了一些关于线的开头和线的结尾的奇怪之处,但对我来说它看起来像一个虫子

前者将按预期工作,但随后无法执行pragma integrity_check;,因为我的字符串是NULL(这是有效的),但pcre regexp扩展将抱怨error: no string(它已在上的另一个注释中引用,因此也是一个bug,可以通过首先检查NOT NULL来规避)

因此,我的问题是:

  1. 我是否遗漏了与POSIX兼容的regexp,这就解释了吗 为什么匹配返回真值而不应该返回真值
  2. 还有其他正则表达式吗 扩展,尤其是使用NULL字符串时工作得更好

Tags: the方法字符串dbsqliteqt字符null