У меня есть вектор (Vec<(usize, usize)>
) пар (начало, конец), который исходит из find_iter()
, и мне нужно, чтобы он был расширен до Vec<usize>
. Под расширением я подразумеваю, что [(0, 3), (10, 13)]
следует расширить до [0, 1, 2, 10, 11, 12]
. Таким образом, каждое число между ними должно быть в ve c, начиная с start
(включительно) и доходя до end
(исключая). У меня есть рабочий код, но мне было интересно, есть ли более элегантный способ сделать это.
Вот минимальный пример:
use regex::Regex;
fn get_substring_indexes(string: &str, substring: &str) -> Vec<usize> {
let mut indexes = Vec::new();
for mat in Regex::new(substring).unwrap().find_iter(string) {
indexes.extend(mat.range());
}
indexes
}
fn main() {
println!("{:?}", get_substring_indexes("git add . git", "git"));
}