当前位置: 首页 > 面试题库 >

regexp python和sqlite的问题

章建木
2023-03-14
问题内容

我尝试在sqlite数据库上使用正则表达式和python检查带有模式的字符串。当我尝试使用具有“的模式”的de搜索字符串时出现问题,例如:

cur.execute("insert into articles(id,subject) values (1,'aaa\"test\"')")
cur.execute("select id,subject from articles where id = 1")
print (cur.fetchall())

cur.execute("select subject from articles where  subject regexp '\"test\"' ")
print (cur.fetchall())

我应该在正则表达式之前以其他方式编译器不喜欢…语法错误

[(1, 'aaa"test"')]
[] <????? should found

有人知道该怎么做吗?

我的正则表达式函数:con.create_function(“ regexp”,2,regexp)


问题答案:

使用参数化的sql。然后,您无需自己转义引号:

import sqlite3
import re

def regexp(expr, item):
    reg = re.compile(expr)
    return reg.search(item) is not None

conn = sqlite3.connect(':memory:')
conn.create_function("REGEXP", 2, regexp)
cursor = conn.cursor()
cursor.execute('CREATE TABLE foo (bar TEXT)')
cursor.executemany('INSERT INTO foo (bar) VALUES (?)',[('aaa"test"',),('blah',)])
cursor.execute('SELECT bar FROM foo WHERE bar REGEXP ?',['"test"'])
data=cursor.fetchall()
print(data)

产量

[(u'aaa"test"',)]


 类似资料:
  • 我正在转换我的rails 5.1应用程序,开始使用UUID而不是增量id作为默认的active_record。 我已将迁移文件更改为使用 我添加了一个迁移文件来支持“uuid-ossp”和“pgcrypto”,因为我打算在prod中使用pg。 但是当我尝试创建一个对象时,我得到一个错误,就好像id为空一样。 < code > active record::NotNullViolation:SQLi

  • 我可以再次使用一些帮助,出于想法。:(我正在制作将使用SQLite数据库的JavaFX应用程序。使用OpenJDK 14和OpenJFX14。在我的Eclipse中,一切都运行良好。我尝试测试使用JPackage制作安装程序,这也有效。当我开始安装应用程序时,它启动正常,但出于某种原因拒绝与数据库连接。 以下是我的项目结构: 我有一个按钮,当阶段加载时,我检查连接。它位于PocetnaContro

  • 构建一个基本的基于sqlite的登录/注册应用程序。点击登录后App崩溃。 有什么想法吗? databaseHelper.java: display.java: contact.java:

  • 问题内容: 是否可以将SQLite用于j2me应用程序?有没有人尝试过这样做? 问题答案: SQLite不是用Java编写的,因此,您需要的是通过一些类似于JNI的接口将其作为非标准Java API来使用,或者将大多数SQLite源代码转换为可能使用用于存储的JSR75文件连接。 第一种解决方案无异于在电话的J2ME实现中添加新的JSR,如果您不是电话制造商或它的紧密合作伙伴之一,这通常非常困难,

  • 问题内容: 我对单个文件数据库提供的简洁性感到着迷。可以使用哪些驱动程序/连接器库来连接SQLite并将其与Java一起使用。 我发现了一个包装器库http://www.ch-werner.de/javasqlite,但是还有其他更著名的项目吗? 问题答案: 在使用SQLite和Java 搜索信息时找到了你的问题。只是想我要补充我的回答,我也贴在我的博客。 我已经用Java编码了一段时间了。我也了

  • 我在更新Blob时遇到了一个问题,问题是不执行,但是,如果我取出与Blob相关的所有内容来更新Blob,其他内容也会更新,如ID、名称、地址等,所有内容都能正常工作,问题只是与Blob有关。 编辑- 但是,我可以插入和删除blob文件以及检索。只是这次更新给了我一个问题。