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

Django过滤器-Iregex仅匹配完整单词

薄涵衍
2023-03-14
问题内容

因此,我一直在尝试实现一种搜索功能,用户可以在其中输入关键字并查找用户。该搜索方法应该在用户的字段(例如名字,姓氏,工作等)中查找完全匹配的单词

我尝试过icontains,但也可以在单词中匹配,例如,如果用户输入“ a”,则搜索将返回包含“
a”的任何内容。(这是我本来要解决此问题之前最初要做的事情)

我试过了,iexact但是显然可以给出一个完全匹配的结果,如果用户输入“ john”,它将跳过名字为“ john doe”或类似名称的用户

由于我使用的是Postgresql,因此我改用了\ y而不是\ b。现在我当前正在使用的查询是

results = User.objects.filter(first_name__iregex=r"\y{0}\y".format(first))

我也尝试过,其他方法在我提到的两个线程中列出。

results = User.objects.filter(first_name__iregex=r"\y%s\y"%first)

问题在于它不返回任何东西。据我所知,调试时我走了,检查了正在生成什么查询。

WHERE `LinkedApp_user`.`first_name` REGEXP \yahsan\y

我的数据库当前有大约5个用户,其中一个用户的名字为“ ahsan”,而另一个用户的名字为“ ahsan
saleem”。但是,此查询不返回任何内容。我真的很感谢您的帮助。

编辑:我试图切换到SQLite并用\ b更改\ y,并且搜索似乎已经开始工作。但是我不能与sqlite合作,如果有人可以指导我,我将不胜感激。

另一个编辑: 我已经通过切换db解决了postgresql的问题。无论如何,这是一个愚蠢的错误。问题是您如何使它与 mysql一起使用
我尝试过的所有方法都失败了。


问题答案:

在MySQL中,单词边界由[[:<:]]和[[:>:]](http://dev.mysql.com/doc/refman/5.7/en/regexp.html)匹配。



 类似资料:
  • 问题内容: 我需要按类别过滤项目列表。我希望用户能够单击一个按钮,然后将过滤器应用于列表。 目前,我已经在一定程度上进行了这项工作。 举例来说,我有一个电影列表,如下所示: 我还有一个电影流派列表(渲染为按钮,单击该按钮将过滤电影列表),如下所示: (“ changeGenre()”函数所做的全部工作就是更新范围,以显示当前正在查看的流派)。 现在这个方法可以正常工作,直到我遇到两种类型的情况:“

  • 问题内容: 如何在mysql中匹配整个单词? 举例来说,如果我输入“ 刘 ”,我 不 希望匹配“ 劳拉 ”或“ 劳伦斯 ”。 以下是我的工作查询,将“ lau ”与“ laura ”匹配 有解决我的主意吗? 我使用的原因是我的内容具有html标签,例如, 我不想搜索可能落在诸如的标签内的单词。 问题答案: 这行得通吗? REGEXP’[^ <] * lau [[:>:]]’ 根据文档,[[:::]

  • 我在ES中有一个多匹配查询,希望添加一个过滤器。 添加此筛选器的语法是什么? 我试过:

  • 问题内容: 我在ES中有一个多匹配查询,并希望添加一个过滤器。 添加此过滤器的语法是什么? 我试过了: 问题答案: 根据您的需要,必须将过滤器放置在正确的位置。您有两种选择: 使用顶级过滤器,并将该过滤器仅应用于搜索结果,而不应用于各个方面 使用过滤的查询,并将过滤器应用于搜索结果和构面

  • 问题内容: 我正在使用ORB特征检测器使用以下代码查找两个图像之间的匹配项: 我的问题是我找不到过滤匹配项的方法,因此仅当它们在照片中具有相似位置时才匹配。即使一个关键点在位置上距离很远,我也总是会得到多个匹配。 有没有办法更好地过滤它们? 问题答案: 为了获得更好的匹配结果,您应该以给定的顺序包括这些过滤方法。 在两个方向上执行匹配,即对于第一张图像中的每个点,在第二张图像中找到最佳匹配,反之亦

  • 本文向大家介绍Regular Expressions 匹配完整字词,包括了Regular Expressions 匹配完整字词的使用技巧和注意事项,需要的朋友参考一下 示例 将匹配没有字母数字且在其_前后的完整单词。 从regularexpression.info获取 有三个不同的位置可作为单词边界: 如果字符串中的第一个字符是单词字符,则在字符串中第一个字符之前。 如果字符串中的最后一个字符是单