Django查询中的Regex

2024-10-01 09:32:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图编写一个Django查询,它将根据特定的regex模式进行过滤。在

我想用一个代码进行过滤,该代码可以找出任何非数字字符后跟数字,然后是非数字字符的情况(空白是可以的)。在

{cd1>就是一些代码。在

所以我希望我的结果返回:AJDP8EP, oskdpoeks8。在

这是我的疑问,但它不能正确识别事物。数字是一个变量。在

results = Book.objects.filter(author__contains = firstname,type = "Fiction").filter(code__regex = r'^(\D+)(number)(\D+)')

Tags: django代码模式情况数字filter字符results
1条回答
网友
1楼 · 发布于 2024-10-01 09:32:46

不能在带引号的正则表达式中使用变量。尝试连接字符串,如:

r"^(\D+)(" + str(number) + ")(\D+)"

这将把number变量转换为字符串,以防它还没有出现。在

另外,正如您的问题的一个注释所示,oskdpoeks8将与您的模式不匹配。如果您想捕捉number可能出现在代码末尾的情况,一种解决方案是:

r"^(\D+)(" + str(number) + ")(\D*)"

请注意,将+替换为*,以捕捉零出现的情况。在

相关问题 更多 >