Advertisement
Guest User

regexp in django orm

a guest
Jul 11th, 2012
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.80 KB | None | 0 0
  1. RE_REPLACEMENTS = {
  2.     "postgresql": [
  3.         ("{begin-word}", r"\m"),
  4.         ("{end-word}", r"\M"),
  5.     ],
  6.     "mysql": [
  7.         ("{begin-word}", "[[:<:]]"),
  8.         ("{end-word}", "[[:>:]]"),
  9.     ],
  10.     "oracle": [
  11.         ("{begin-word}", r"(^|\W)"), # HACK!
  12.         ("{end-word}", r"(\W|$)"), # HACK!
  13.     ],
  14.     "_default_": [
  15.         ("{begin-word}", r"\b"),
  16.         ("{end-word}", r"\b"),
  17.     ]
  18. }
  19.  
  20. def regexp_for_django_orm(re_regexp):
  21.     from django.db import connection
  22.     rules = RE_REPLACEMENTS.get(connection.vendor, RE_REPLACEMENTS["_default_"])
  23.     for pattern, replacement in rules:
  24.         re_regexp = re_regexp.replace(pattern, replacement)
  25.     return re_regexp
  26.  
  27.  
  28. #usage
  29. MyModel.objects.filter(column_iregex = regexp_for_django_orm("{begin-word}WORD{end-word}") )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement