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}")