我试图编写一个Django查询,它将根据特定的regex模式进行过滤。在
我想用一个代码进行过滤,该代码可以找出任何非数字字符后跟数字,然后是非数字字符的情况(空白是可以的)。在
{cd1>就是一些代码。在
所以我希望我的结果返回:AJDP8EP, oskdpoeks8
。在
这是我的疑问,但它不能正确识别事物。数字是一个变量。在
results = Book.objects.filter(author__contains = firstname,type = "Fiction").filter(code__regex = r'^(\D+)(number)(\D+)')
不能在带引号的正则表达式中使用变量。尝试连接字符串,如:
r"^(\D+)(" + str(number) + ")(\D+)"
这将把
number
变量转换为字符串,以防它还没有出现。在另外,正如您的问题的一个注释所示,
oskdpoeks8
将与您的模式不匹配。如果您想捕捉number
可能出现在代码末尾的情况,一种解决方案是:r"^(\D+)(" + str(number) + ")(\D*)"
请注意,将
+
替换为*
,以捕捉零出现的情况。在相关问题 更多 >
编程相关推荐