gpt4 book ai didi

regex - Django搜索存储在模型中的正则表达式列表

转载 作者:行者123 更新时间:2023-12-04 18:21:10 26 4
gpt4 key购买 nike

这是我的问题。
我有一个带有正则表达式列表的模型,比如说

|__Field_|  
| (\w+) |
| ([op]+)|
| .* |
| others.|

我有一个单词列表,比如说('cat',“dog”,“wolf”),我需要找到存储在我的模型中的哪个正则表达式与我列表中的一个单词(或多个单词)匹配......
这就像一个反向 __regexp 过滤器。
我怎样才能实现这个功能?

有没有更好的方法来做这样的事情?

谢谢!

最佳答案

你没有指定两个重要的事情:

  • 你用的是什么数据库?
  • 您可以在 PCRE 和 POSIX 正则表达式之间切换吗?

  • 假设您使用的数据库允许使用正则表达式执行查询,并且您的数据库支持您需要的标准(PCRE/POSIX),您可以反转 __regex使用 extra() Queryset modifier 过滤.看看下面的代码:
    Model.objects.extra(where=[sql_regex('REGEX_COLUMN')], params=['TEXT TO MATCH']).all()
    sql_regex()代码类似于:
    from django.db import backend

    def sql_regex(column, type='regex'):
    op = backend.DatabaseWrapper.operators[type].replace('%s', column)
    return '%s ' + op

    我用了 backend.DatabaseWrapper.operators[type]获取预定义的模式来查询存储在数据库后端的正则表达式。

    关于regex - Django搜索存储在模型中的正则表达式列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10653162/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com