mirror of
https://github.com/python/cpython.git
synced 2025-10-14 18:59:46 +00:00
bpo-30285: Optimize case-insensitive matching and searching (#1482)
of regular expressions.
This commit is contained in:
parent
f93234bb8a
commit
6d336a0279
6 changed files with 215 additions and 70 deletions
|
@ -891,15 +891,24 @@ class ReTests(unittest.TestCase):
|
|||
lo = ord(c.lower())
|
||||
self.assertEqual(_sre.ascii_tolower(i), lo)
|
||||
self.assertEqual(_sre.unicode_tolower(i), lo)
|
||||
iscased = c in string.ascii_letters
|
||||
self.assertEqual(_sre.ascii_iscased(i), iscased)
|
||||
self.assertEqual(_sre.unicode_iscased(i), iscased)
|
||||
|
||||
for i in list(range(128, 0x1000)) + [0x10400, 0x10428]:
|
||||
c = chr(i)
|
||||
self.assertEqual(_sre.ascii_tolower(i), i)
|
||||
if i != 0x0130:
|
||||
self.assertEqual(_sre.unicode_tolower(i), ord(c.lower()))
|
||||
iscased = c != c.lower() or c != c.upper()
|
||||
self.assertFalse(_sre.ascii_iscased(i))
|
||||
self.assertEqual(_sre.unicode_iscased(i),
|
||||
c != c.lower() or c != c.upper())
|
||||
|
||||
self.assertEqual(_sre.ascii_tolower(0x0130), 0x0130)
|
||||
self.assertEqual(_sre.unicode_tolower(0x0130), ord('i'))
|
||||
self.assertFalse(_sre.ascii_iscased(0x0130))
|
||||
self.assertTrue(_sre.unicode_iscased(0x0130))
|
||||
|
||||
def test_not_literal(self):
|
||||
self.assertEqual(re.search(r"\s([^a])", " b").group(1), "b")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue