Django 查询集正则表达式过滤器给出(3692,'{min,max} 间隔的描述不正确)
Django queryset regex filter gives (3692, 'Incorrect description of a {min,max} interval)
使用 Django 2.2 和 MySQL 数据库。
我在 table 中有一个字段 (info
) 包含字符串化的 JSON 数据。我要过滤符合正则表达式的数据
info
字段中的示例数据是
[{"type":"button","data":{"link":"https://example.com","label":"Click Here","tracking":{"id":"E3s06x","tag":"btn1"}}}]
我要匹配表达式的地方
"tracking":{"id":"(\S+)","tag":"(\S+)"}
我尝试在 Django ORM
中使用 regex
过滤器
query = query.filter(
info__iregex=r'"tracking":{"id":"(\S+)","tag":"(\S+)"}'
)
但是报错
django.db.utils.OperationalError: (3692, 'Incorrect description of a {min,max} interval.')
大括号表示在正则表达式中某些文本可能会出现多次,因此您使用了大括号而不对它们进行转义。尝试将 {
替换为 \{
并类比关闭
使用 Django 2.2 和 MySQL 数据库。
我在 table 中有一个字段 (info
) 包含字符串化的 JSON 数据。我要过滤符合正则表达式的数据
info
字段中的示例数据是
[{"type":"button","data":{"link":"https://example.com","label":"Click Here","tracking":{"id":"E3s06x","tag":"btn1"}}}]
我要匹配表达式的地方
"tracking":{"id":"(\S+)","tag":"(\S+)"}
我尝试在 Django ORM
中使用regex
过滤器
query = query.filter(
info__iregex=r'"tracking":{"id":"(\S+)","tag":"(\S+)"}'
)
但是报错
django.db.utils.OperationalError: (3692, 'Incorrect description of a {min,max} interval.')
大括号表示在正则表达式中某些文本可能会出现多次,因此您使用了大括号而不对它们进行转义。尝试将 {
替换为 \{
并类比关闭