Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django查询集regex提供额外结果_Python_Mysql_Sql_Regex_Django - Fatal编程技术网

Python django查询集regex提供额外结果

Python django查询集regex提供额外结果,python,mysql,sql,regex,django,Python,Mysql,Sql,Regex,Django,我正在尝试对django查询集进行正则表达式查询。我有一个列,它的值如下 '67,42,16','16,42,67,70','4,11,21,78','12,45,6,22' 我想提取包含“4”或“70”的列。这是我的正则表达式 _regex = r"(^|(\d*,)+)%s((,\d*)+|$)" %('4|70') 还有我的问题 dict(Table.objects.filter(column__regex=_regex).values_list('row_id','column'))

我正在尝试对django查询集进行正则表达式查询。我有一个列,它的值如下

'67,42,16','16,42,67,70','4,11,21,78','12,45,6,22'

我想提取包含“4”或“70”的列。这是我的正则表达式

 _regex = r"(^|(\d*,)+)%s((,\d*)+|$)" %('4|70')
还有我的问题

dict(Table.objects.filter(column__regex=_regex).values_list('row_id','column'))
它返回以下结果

{1563864L: u'67,42,16', 1563804L: u'16,42,67,70', 1563863L: u'4,11,21,78'}
我期待这个结果
1563804L:u'16,42,67,70',15638633l:u'4,11,21,78'

不确定为什么我会因此得到
1563864L:u'67,42,16'


任何帮助都将不胜感激。提前感谢

我只能猜到您想做什么,因为要改变正则表达式的初衷总是很困难的。试试这个

_regex = '(^({0}),.+)|(.+,({0}),.+)|(.+,({0})$)'.format('4|70')
还有一点像蟒蛇:

acceptable_values = [4, 70]
regex_template = '(^({0}),.+)|(.+,({0}),.+)|(.+,({0})$)'
_regex = regex_template.format('|'.join([str(v) for v in acceptable_values]))

不用进入你的正则表达式。所有字符串都包含一个
4
。嘿,Gogoi,如果我将正则表达式更改为_regex=r“(^ |)(\d*,)+)%s((,\d*)+|$)“%('4')…我会得到预期的结果{15638633l:u'4,11,21,78'}…这是正确的。有问题..正则表达式应该是r“(^ |(^)(\d*,)+)(%s)(,\d*)+)”)((,\d*)))+)”)“+)”('70')