HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Users/fred/anaconda3/Lib/site-packages/win32com/test/testvbscript_regexp.py
import unittest
from win32com.client.gencache import EnsureDispatch
from win32com.client.dynamic import DumbDispatch
import win32com.test.util


class RegexTest(win32com.test.util.TestCase):
    def _CheckMatches(self, match, expected):
        found = []
        for imatch in match:
            found.append(imatch.FirstIndex)
        self.assertEqual(list(found), list(expected))

    def _TestVBScriptRegex(self, re):
        StringToSearch = "Python python pYthon Python"
        re.Pattern = "Python"
        re.Global = True

        re.IgnoreCase = True
        match = re.Execute(StringToSearch)
        expected = 0, 7, 14, 21
        self._CheckMatches(match, expected)

        re.IgnoreCase = False
        match = re.Execute(StringToSearch)
        expected = 0, 21
        self._CheckMatches(match, expected)

    def testDynamic(self):
        re = DumbDispatch("VBScript.Regexp")
        self._TestVBScriptRegex(re)

    def testGenerated(self):
        re = EnsureDispatch("VBScript.Regexp")
        self._TestVBScriptRegex(re)


if __name__ == "__main__":
    unittest.main()