breakOnAll

O(n+m) Find all non-overlapping instances of needle in haystack. Each element of the returned list consists of a pair:
  • The entire string prior to the kth match (i.e. the prefix)
  • The kth match, followed by the remainder of the string
Examples:
>>> breakOnAll "::" ""
[]
>>> breakOnAll "/" "a/b/c/"
[("a","/b/c/"),("a/b","/c/"),("a/b/c","/")]
In (unlikely) bad cases, this function's time complexity degrades towards O(n*m). The needle parameter may not be empty.
O(n+m) Find all non-overlapping instances of needle in haystack. Each element of the returned list consists of a pair:
  • The entire string prior to the kth match (i.e. the prefix)
  • The kth match, followed by the remainder of the string
Examples:
breakOnAll "::" ""
==> []
breakOnAll "/" "a/b/c/"
==> [("a", "/b/c/"), ("a/b", "/c/"), ("a/b/c", "/")]
This function is strict in its first argument, and lazy in its second. In (unlikely) bad cases, this function's time complexity degrades towards O(n*m). The needle parameter may not be empty.
O(n+m) Find all non-overlapping instances of needle in haystack. Each element of the returned list consists of a pair:
  • The entire string prior to the kth match (i.e. the prefix)
  • The kth match, followed by the remainder of the string
Examples:
breakOnAll "::" ""
==> []
breakOnAll "/" "a/b/c/"
==> [("a", "/b/c/"), ("a/b", "/c/"), ("a/b/c", "/")]
In (unlikely) bad cases, this function's time complexity degrades towards O(n*m). The needle parameter may not be empty.