I can split a &str
like so:
let v: Vec<&str> = "Mary had a little lamb".split(' ').collect();
assert_eq!(v, ["Mary", "had", "a", "little", "lamb"]);
Is there a way I can split a &str
while retaining the elements split over in the iterator? For example:
let v: Vec<&str> = "Mary had a little lamb".split_retain(' ').collect();
assert_eq!(v, ["Mary", " ", "had", " ", "a", " ", "little", " ", "lamb"]);
This iter
isn't very useful when we are only splitting over a single char
, but it becomes useful when we have a more complex split such as:
let mut iter = some_str.split(|c: char| c.is_whitespace() || c == ':' || c == ',' || c == '(' || c == ')')