regex -- Tools for representing MongoDB regular expressions#

在 2.7 版本加入.

Tools for representing MongoDB regular expressions.

class bson.regex.Regex(pattern: _T, flags: str | int = 0)#

BSON regular expression data.

This class is useful to store and retrieve regular expressions that are incompatible with Python's regular expression dialect.

Parameters:
  • pattern: string

  • flags: (optional) an integer bitmask, or a string of flag characters like "im" for IGNORECASE and MULTILINE

classmethod from_native(regex: Pattern[_T]) Regex[_T]#

Convert a Python regular expression into a Regex instance.

Note that in Python 3, a regular expression compiled from a str has the re.UNICODE flag set. If it is undesirable to store this flag in a BSON regular expression, unset it first:

>>> pattern = re.compile('.*')
>>> regex = Regex.from_native(pattern)
>>> regex.flags ^= re.UNICODE
>>> db.collection.insert_one({'pattern': regex})
Parameters:
  • regex: A regular expression object from re.compile().

警告

Python regular expressions use a different syntax and different set of flags than MongoDB, which uses PCRE. A regular expression retrieved from the server may not compile in Python, or may match a different set of strings in Python than when used in a MongoDB query.

try_compile() Pattern[_T]#

Compile this Regex as a Python regular expression.

警告

Python regular expressions use a different syntax and different set of flags than MongoDB, which uses PCRE. A regular expression retrieved from the server may not compile in Python, or may match a different set of strings in Python than when used in a MongoDB query. try_compile() may raise re.error.