Regex Django istartswith匹配短语中的单独单词

Regex Django istartswith匹配短语中的单独单词,regex,django,Regex,Django,这正是我要找的。但我无法使用答案中提供的信息实现目标 我将用一个例子来说明我的目标。 例如,我有三个字符串: John Smith Lee, John Micheal Bolton 我正在寻找一个Django过滤器,它将选择第一个(John Smith)和第二个(Lee,John)字符串,如果用户在搜索字段中输入短语John,则排除(过滤掉)最后一个字符串。 我的代码现在如下所示: text = "John" qs = qs.filter(name__iregex = r"(^|\s)%s"

这正是我要找的。但我无法使用答案中提供的信息实现目标

我将用一个例子来说明我的目标。 例如,我有三个字符串:

John Smith
Lee, John
Micheal Bolton
我正在寻找一个Django过滤器,它将选择第一个(
John Smith
)和第二个(
Lee,John
)字符串,如果用户在搜索字段中输入短语
John
,则排除(过滤掉)最后一个字符串。 我的代码现在如下所示:

text = "John"
qs = qs.filter(name__iregex = r"(^|\s)%s" % text)

有什么想法吗?

为什么不
qs.filter(name\uu icontains=text)
?因为如果用户插入
ohn
,并且既不想看到“John Smith”也不想看到“李,约翰。我只想要以搜索文本开始的结果,我刚刚在本地测试了这个正则表达式,效果非常好。边缘情况是什么?如果我键入
Smi
,它不会呈现
John Smith
。此外,它确实包括了
Esmiralda
,尽管它不应该包括在内。真奇怪,嗯。。真奇怪。我正在使用postgres,工作非常出色<代码>Esmeralda不包括在结果中。