diff --git a/django/test/testcases.py b/django/test/testcases.py
index 2ea5190..2b0590f 100644
--- a/django/test/testcases.py
+++ b/django/test/testcases.py
@@ -12,6 +12,7 @@ import threading
 import unittest
 import warnings
 from collections import Counter
+from contextlib import contextmanager
 from copy import copy
 from functools import wraps
 from unittest.util import safe_repr
@@ -604,6 +605,7 @@ class SimpleTestCase(unittest.TestCase):
             msg_prefix + "Template '%s' was used unexpectedly in rendering"
             " the response" % template_name)
 
+    @contextmanager
     def assertRaisesMessage(self, expected_exception, expected_message, *args, **kwargs):
         """
         Asserts that the message in a raised exception matches the passed
@@ -623,8 +625,11 @@ class SimpleTestCase(unittest.TestCase):
                 'as an arg instead.', RemovedInDjango20Warning
             )
             args = (callable_obj,) + args
-        return six.assertRaisesRegex(self, expected_exception,
-                re.escape(expected_message), *args, **kwargs)
+
+        with self.assertRaises(expected_exception) as cm:
+            yield cm
+        err = cm.exception
+        self.assertIn(expected_message, str(err))
 
     def assertFieldOutput(self, fieldclass, valid, invalid, field_args=None,
             field_kwargs=None, empty_value=''):
