Django filter regex

正则表达式语法是使用中的数据库后端的语法。对于没有内置正则表达式支持的 SQLite 来说,这个功能是由(Python)用户定义的 REGEXP 函数提供的,因此正则表达式语法是 Python 的 re 模块的语法。

MySQL Regex

元字符 行为
^ 匹配搜索字符串开头处的位置
$ 匹配搜索字符串末尾的位置
. 匹配任何单个字符
[…] 匹配方括号内的任何字符
[^…] 匹配方括号内未指定的任何字符
p1|p2 匹配p1或p2模式
* 匹配前面的字符零次或多次
+ 匹配前一个字符一次或多次
{n} 匹配前几个字符的n个实例
{m,n} 从m到n个前一个字符的实例匹配

例: 匹配123的,942你

Model.objects.filter(name__regex="[123456789]{3}[^1234567890]*")
Model.objects.filter(name__regex="[123456789]{3}[^1234567890]+")
Model.objects.filter(name__regex="[123456789]{3}[^1234567890]{3}")
posted @ 2023-03-01 15:24  twfb  阅读(77)  评论(0编辑  收藏  举报