<bdo id='74y9B'></bdo><ul id='74y9B'></ul>
  • <tfoot id='74y9B'></tfoot>

      1. <i id='74y9B'><tr id='74y9B'><dt id='74y9B'><q id='74y9B'><span id='74y9B'><b id='74y9B'><form id='74y9B'><ins id='74y9B'></ins><ul id='74y9B'></ul><sub id='74y9B'></sub></form><legend id='74y9B'></legend><bdo id='74y9B'><pre id='74y9B'><center id='74y9B'></center></pre></bdo></b><th id='74y9B'></th></span></q></dt></tr></i><div id='74y9B'><tfoot id='74y9B'></tfoot><dl id='74y9B'><fieldset id='74y9B'></fieldset></dl></div>
        <legend id='74y9B'><style id='74y9B'><dir id='74y9B'><q id='74y9B'></q></dir></style></legend>

        <small id='74y9B'></small><noframes id='74y9B'>

      2. regexp python 和 sqlite 的问题

        时间:2023-10-10
      3. <legend id='CafrI'><style id='CafrI'><dir id='CafrI'><q id='CafrI'></q></dir></style></legend>
      4. <tfoot id='CafrI'></tfoot>

          <tbody id='CafrI'></tbody>
          <i id='CafrI'><tr id='CafrI'><dt id='CafrI'><q id='CafrI'><span id='CafrI'><b id='CafrI'><form id='CafrI'><ins id='CafrI'></ins><ul id='CafrI'></ul><sub id='CafrI'></sub></form><legend id='CafrI'></legend><bdo id='CafrI'><pre id='CafrI'><center id='CafrI'></center></pre></bdo></b><th id='CafrI'></th></span></q></dt></tr></i><div id='CafrI'><tfoot id='CafrI'></tfoot><dl id='CafrI'><fieldset id='CafrI'></fieldset></dl></div>

              <small id='CafrI'></small><noframes id='CafrI'>

                <bdo id='CafrI'></bdo><ul id='CafrI'></ul>
                • 本文介绍了regexp python 和 sqlite 的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我尝试在 sqlite 数据库上使用带有 python 的正则表达式检查具有模式的字符串.当我尝试搜索字符串时,我遇到了问题,其中包含 " 和使用 " 的模式例如:

                  I try to check a string with a pattern using a regex with python on a sqlite database. I have problem when I try de search string having " with a patern using " For exemple:

                  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())
                  

                  我应该 " 在正则表达式之前编译器不喜欢...语法错误

                  I should " before regexp other way compiler dont like... syntaxe error

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

                  有人知道怎么做吗?

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

                  My regexp function :con.create_function("regexp", 2, regexp)

                  推荐答案

                  使用参数化的 sql.然后你不需要自己转义引号:

                  Use parametrized sql. Then you don't need to escape the quotes yourself:

                  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"',)]
                  

                  这篇关于regexp python 和 sqlite 的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:如何从 SQLAlchemy 映射对象中发现表属性 下一篇:在 SQLite 中,准备好的语句真的能提高性能吗?

                  相关文章

                  <tfoot id='lSK9n'></tfoot>

                      <small id='lSK9n'></small><noframes id='lSK9n'>

                      <i id='lSK9n'><tr id='lSK9n'><dt id='lSK9n'><q id='lSK9n'><span id='lSK9n'><b id='lSK9n'><form id='lSK9n'><ins id='lSK9n'></ins><ul id='lSK9n'></ul><sub id='lSK9n'></sub></form><legend id='lSK9n'></legend><bdo id='lSK9n'><pre id='lSK9n'><center id='lSK9n'></center></pre></bdo></b><th id='lSK9n'></th></span></q></dt></tr></i><div id='lSK9n'><tfoot id='lSK9n'></tfoot><dl id='lSK9n'><fieldset id='lSK9n'></fieldset></dl></div>
                      • <bdo id='lSK9n'></bdo><ul id='lSK9n'></ul>
                    1. <legend id='lSK9n'><style id='lSK9n'><dir id='lSK9n'><q id='lSK9n'></q></dir></style></legend>