【发布时间】:2020-08-20 03:04:47
【问题描述】:
我有一个来自 find_iter() 的Vec<(usize, usize)>(开始,结束)对,我需要将其扩展为Vec<usize>。通过扩展,我的意思是[(0, 3), (10, 13)] 应该扩展为[0, 1, 2, 10, 11, 12]。所以,中间的每个数字都应该在Vec 中,从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"));
}
【问题讨论】:
标签: loops vector rust iterator tuples