Ejemplo n.º 1
0
 def test_search_star_plus(self):
     assert re.search('x*', 'axx').span(0) == (0, 0)
     assert re.search('x*', 'axx').span() == (0, 0)
     assert re.search('x+', 'axx').span(0) == (1, 3)
     assert re.search('x+', 'axx').span() == (1, 3)
     assert re.search('x', 'aaa') == None
     assert re.match('a*', 'xxx').span(0) == (0, 0)
     assert re.match('a*', 'xxx').span() == (0, 0)
     assert re.match('x*', 'xxxa').span(0) == (0, 3)
     assert re.match('x*', 'xxxa').span() == (0, 3)
     assert re.match('a+', 'xxx') == None
Ejemplo n.º 2
0
 def test_search_star_plus(self):
     assert re.search('x*', 'axx').span(0) == (0, 0)
     assert re.search('x*', 'axx').span() == (0, 0)
     assert re.search('x+', 'axx').span(0) == (1, 3)
     assert re.search('x+', 'axx').span() == (1, 3)
     assert re.search('x', 'aaa') == None
     assert re.match('a*', 'xxx').span(0) == (0, 0)
     assert re.match('a*', 'xxx').span() == (0, 0)
     assert re.match('x*', 'xxxa').span(0) == (0, 3)
     assert re.match('x*', 'xxxa').span() == (0, 3)
     assert re.match('a+', 'xxx') == None
Ejemplo n.º 3
0
 def test_bug_418626(self):
     # bugs 418626 at al. -- Testing Greg Chapman's addition of op code
     # SRE_OP_MIN_REPEAT_ONE for eliminating recursion on simple uses of
     # pattern '*?' on a long string.
     assert re.match('.*?c', 10000*'ab'+'cd').end(0) == 20001
     assert re.match('.*?cd', 5000*'ab'+'c'+5000*'ab'+'cde').end(0) == (
                      20003)
     assert re.match('.*?cd', 20000*'abc'+'de').end(0) == 60001
     # non-simple '*?' still used to hit the recursion limit, before the
     # non-recursive scheme was implemented.
     assert re.search('(a|b)*?c', 10000*'ab'+'cd').end(0) == 20001
Ejemplo n.º 4
0
 def test_bug_418626(self):
     # bugs 418626 at al. -- Testing Greg Chapman's addition of op code
     # SRE_OP_MIN_REPEAT_ONE for eliminating recursion on simple uses of
     # pattern '*?' on a long string.
     assert re.match('.*?c', 10000 * 'ab' + 'cd').end(0) == 20001
     assert re.match('.*?cd', 5000 * 'ab' + 'c' + 5000 * 'ab' +
                     'cde').end(0) == (20003)
     assert re.match('.*?cd', 20000 * 'abc' + 'de').end(0) == 60001
     # non-simple '*?' still used to hit the recursion limit, before the
     # non-recursive scheme was implemented.
     assert re.search('(a|b)*?c', 10000 * 'ab' + 'cd').end(0) == 20001
Ejemplo n.º 5
0
 def test_search_coverage(self):
     assert re.search("\s(b)", " b").group(1) == "b"
     assert re.search("a\s", "a ").group(0) == "a "
Ejemplo n.º 6
0
 def test_not_literal(self):
     assert re.search("\s([^a])", " b").group(1) == "b"
     assert re.search("\s([^a]*)", " bb").group(1) == "bb"
Ejemplo n.º 7
0
 def test_special_escapes(self):
     assert re.search(r"\b(b.)\b",
                                "abcd abc bcd bx").group(1) == "bx"
     assert re.search(r"\B(b.)\B",
                                "abc bcd bc abxd").group(1) == "bx"
     assert re.search(r"\b(b.)\b",
                                "abcd abc bcd bx", re.LOCALE).group(1) == "bx"
     assert re.search(r"\B(b.)\B",
                                "abc bcd bc abxd", re.LOCALE).group(1) == "bx"
     assert re.search(r"\b(b.)\b",
                                "abcd abc bcd bx", re.UNICODE).group(1) == "bx"
     assert re.search(r"\B(b.)\B",
                                "abc bcd bc abxd", re.UNICODE).group(1) == "bx"
     assert re.search(r"^abc$", "\nabc\n", re.M).group(0) == "abc"
     assert re.search(r"^\Aabc\Z$", "abc", re.M).group(0) == "abc"
     assert re.search(r"^\Aabc\Z$", "\nabc\n", re.M) == None
     assert re.search(r"\b(b.)\b",
                                u"abcd abc bcd bx").group(1) == "bx"
     assert re.search(r"\B(b.)\B",
                                u"abc bcd bc abxd").group(1) == "bx"
     assert re.search(r"^abc$", u"\nabc\n", re.M).group(0) == "abc"
     assert re.search(r"^\Aabc\Z$", u"abc", re.M).group(0) == "abc"
     assert re.search(r"^\Aabc\Z$", u"\nabc\n", re.M) == None
     assert re.search(r"\d\D\w\W\s\S",
                                "1aa! a").group(0) == "1aa! a"
     assert re.search(r"\d\D\w\W\s\S",
                                "1aa! a", re.LOCALE).group(0) == "1aa! a"
     assert re.search(r"\d\D\w\W\s\S",
                                "1aa! a", re.UNICODE).group(0) == "1aa! a"
Ejemplo n.º 8
0
 def test_search_coverage(self):
     assert re.search("\s(b)", " b").group(1) == "b"
     assert re.search("a\s", "a ").group(0) == "a "
Ejemplo n.º 9
0
 def test_not_literal(self):
     assert re.search("\s([^a])", " b").group(1) == "b"
     assert re.search("\s([^a]*)", " bb").group(1) == "bb"
Ejemplo n.º 10
0
 def test_special_escapes(self):
     assert re.search(r"\b(b.)\b", "abcd abc bcd bx").group(1) == "bx"
     assert re.search(r"\B(b.)\B", "abc bcd bc abxd").group(1) == "bx"
     assert re.search(r"\b(b.)\b", "abcd abc bcd bx",
                      re.LOCALE).group(1) == "bx"
     assert re.search(r"\B(b.)\B", "abc bcd bc abxd",
                      re.LOCALE).group(1) == "bx"
     assert re.search(r"\b(b.)\b", "abcd abc bcd bx",
                      re.UNICODE).group(1) == "bx"
     assert re.search(r"\B(b.)\B", "abc bcd bc abxd",
                      re.UNICODE).group(1) == "bx"
     assert re.search(r"^abc$", "\nabc\n", re.M).group(0) == "abc"
     assert re.search(r"^\Aabc\Z$", "abc", re.M).group(0) == "abc"
     assert re.search(r"^\Aabc\Z$", "\nabc\n", re.M) == None
     assert re.search(r"\b(b.)\b", u"abcd abc bcd bx").group(1) == "bx"
     assert re.search(r"\B(b.)\B", u"abc bcd bc abxd").group(1) == "bx"
     assert re.search(r"^abc$", u"\nabc\n", re.M).group(0) == "abc"
     assert re.search(r"^\Aabc\Z$", u"abc", re.M).group(0) == "abc"
     assert re.search(r"^\Aabc\Z$", u"\nabc\n", re.M) == None
     assert re.search(r"\d\D\w\W\s\S", "1aa! a").group(0) == "1aa! a"
     assert re.search(r"\d\D\w\W\s\S", "1aa! a",
                      re.LOCALE).group(0) == "1aa! a"
     assert re.search(r"\d\D\w\W\s\S", "1aa! a",
                      re.UNICODE).group(0) == "1aa! a"