我正在使用Python 3中的sqlite3库,以根据是否与正则表达式匹配来对列进行过滤。
我在这里发现了一个似乎完全可以解决这个问题的问题:Problem with regexp python and sqlite
顶部答案中的函数带有参数a = [-3, -2, -1, 1, 2, 3]
b = 3*a
,其中expr, item
是参数化值,而expr
是在列item
上迭代得到的单元格。我找不到任何建议将WHERE子句中单元格的值传递到自定义函数的最后一个参数的文档-似乎应该为bar
?
在任何地方都有明确记录此交互的信息吗?
答案 0 :(得分:1)
在sqlite中使用x REGEXP y
时,如果存在具有该名称的函数,则转换为regexp(y, x)
,否则返回错误。 ({LIKE
和GLOB
的处理方式相同,只是sqlite提供了这些内容,而不是依赖扩展模块或用户定义的函数。)
REGEXP运算符是regexp()用户函数的特殊语法。默认情况下,没有定义regexp()用户函数,因此使用REGEXP运算符通常会导致错误消息。如果在运行时添加了应用程序定义的名为“ regexp”的SQL函数,则将实现“ X REGEXP Y”运算符作为对“ regexp(Y,X)”的调用。