def matches_str(self, str_or_strs, case_sensitive=True):
        """Determines whether this expression, which must resolve to a string,
        exactly matches the given string or string(s).

        Examples::

            import fiftyone as fo
            import fiftyone.zoo as foz
            from fiftyone import ViewField as F

            dataset = foz.load_zoo_dataset("quickstart")

            # Only contains predictions whose `label` is "cat" or "dog", case
            # insensitive
            view = dataset.map_labels(
                "predictions", {"cat": "CAT", "dog": "DOG"}
            ).filter_labels(
                "predictions",
                F("label").matches_str(("cat", "dog"), case_sensitive=False)
            )

            print(view.distinct("predictions.detections.label"))

        Args:
            str_or_strs: a string or iterable of strings
            case_sensitive (True): whether to perform a case sensitive match

        Returns:
            a :class:`ViewExpression`
        """
        str_or_strs = _escape_regex_chars(str_or_strs)

        if etau.is_str(str_or_strs):
            regex = "^" + str_or_strs + "$"
        else:
            regex = "^(%s)$" % ("|".join(str_or_strs))

        options = None if case_sensitive else "i"
        return self.re_match(regex, options=options)
Determines whether this expression, which must resolve to a string,
        exactly matches the given string or string(s).

        Examples::

            import fiftyone as fo
            import fiftyone.zoo as foz
            from fiftyone import ViewField as F

            dataset = foz.load_zoo_dataset("quickstart")

            # Only contains predictions whose `label` is "cat" or "dog", case
            # insensitive
            view = dataset.map_labels(
                "predictions", {"cat": "CAT", "dog": "DOG"}
            ).filter_labels(
                "predictions",
                F("label").matches_str(("cat", "dog"), case_sensitive=False)
            )

            print(view.distinct("predictions.detections.label"))

        Args:
            str_or_strs: a string or iterable of strings
            case_sensitive (True): whether to perform a case sensitive match

        Returns:
            a :class:`ViewExpression`
        
fiftyone/core/expressions.py