diff --git a/gallery_dl/util.py b/gallery_dl/util.py index 657f66ba..078bb1cb 100644 --- a/gallery_dl/util.py +++ b/gallery_dl/util.py @@ -79,7 +79,7 @@ def contains(values, elements): if isinstance(values, str): fmt = r"\b{}\b".format for e in elements: - if re.search(fmt(e), values): + if re.compile(fmt(re.escape(e))).search(values): return True else: for e in elements: diff --git a/test/test_util.py b/test/test_util.py index b7684601..da0724a1 100644 --- a/test/test_util.py +++ b/test/test_util.py @@ -328,9 +328,8 @@ class TestOther(unittest.TestCase): self.assertFalse(util.contains(c, "bar")) self.assertFalse(util.contains(c, [2, 5, "bar"])) - s = "1, 2, 3, asd, qwe, yxc, foo, bar" - self.assertTrue(util.contains(s, 2)) - self.assertTrue(util.contains(s, "asd")) + s = "1, 2, 3, asd, qwe, y(+)c, f(+)(-), bar" + self.assertTrue(util.contains(s, "y(+)c")) self.assertTrue(util.contains(s, ["asd", "qwe", "yxc"])) self.assertTrue(util.contains(s, ["sdf", "dfg", "qwe"])) self.assertFalse(util.contains(s, "tag1"))