This commit is contained in:
@@ -266,13 +266,15 @@ def index_of_with_escape(haystack: str, needle: str, escape: str, begin: int, en
|
|||||||
|
|
||||||
if escape_count > 0:
|
if escape_count > 0:
|
||||||
escape_count -= 1
|
escape_count -= 1
|
||||||
if c == escape:
|
if c[0] == escape:
|
||||||
result = -1
|
result = -1
|
||||||
elif escape_count == 0:
|
elif escape_count == 0:
|
||||||
if c == escape:
|
if c[0] == escape:
|
||||||
escape_count += 1
|
escape_count += 1
|
||||||
if c == needle:
|
if cursor + len(needle) <= len(haystack):
|
||||||
result = cursor
|
test = haystack[cursor:cursor + len(needle)]
|
||||||
|
if test == needle:
|
||||||
|
result = cursor
|
||||||
|
|
||||||
if result >= 0 and escape_count == 0:
|
if result >= 0 and escape_count == 0:
|
||||||
break
|
break
|
||||||
|
@@ -104,7 +104,7 @@ class TestIndexOfWithEscape(unittest.TestCase):
|
|||||||
break
|
break
|
||||||
solution.append(i)
|
solution.append(i)
|
||||||
i += 1
|
i += 1
|
||||||
self.assertEqual(solution, expected_solution)
|
self.assertEqual(expected_solution, solution)
|
||||||
|
|
||||||
def test_simple(self):
|
def test_simple(self):
|
||||||
self.run_test_case(" dsds $sdsa \\$dfivbdsf \\\\$sdgsga", '$', '\\', [6, 25])
|
self.run_test_case(" dsds $sdsa \\$dfivbdsf \\\\$sdgsga", '$', '\\', [6, 25])
|
||||||
@@ -124,4 +124,6 @@ class TestIndexOfWithEscape(unittest.TestCase):
|
|||||||
def test_special_case(self):
|
def test_special_case(self):
|
||||||
self.run_test_case("\n${sys:user.home}${env:HOME}", ':', '\\', [6, 22])
|
self.run_test_case("\n${sys:user.home}${env:HOME}", ':', '\\', [6, 22])
|
||||||
|
|
||||||
|
def test_wide_needle(self):
|
||||||
|
self.run_test_case("asdasd\\${#vdfv|${#sdfs}", '${', '\\', [15])
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user