我正在尝试拆分std::string::String usingregex::Regex并获取Vec<String>. 最小代码如下所示:
let words: Vec<String> = Regex::new(r"\W+")
.unwrap()
.split(&file_raw.to_owned())
.collect()
.map(|x| x.to_string());
Run Code Online (Sandbox Code Playgroud)
在最后一行我收到一个错误:method not found in 'std::vec::Vec<&str>'带有注释:
let words: Vec<String> = Regex::new(r"\W+")
.unwrap()
.split(&file_raw.to_owned())
.collect()
.map(|x| x.to_string());
Run Code Online (Sandbox Code Playgroud)
这个问题与这个问题非常相似,但提供的解决方案正是我尝试过但失败的解决方案。String::split如果有人能够解释按成员函数拆分和Regex::split.
您的.collect()返回Vec不是迭代器。您当然可以从Vecwith获取迭代器.iter(),然后应用.map(),但我怀疑您真正想要的是在.map()您之前.collect():
let words: Vec<String> = Regex::new(r"\W+")
.unwrap()
.split(&file_raw.to_owned())
.map(|x| x.to_string())
.collect();
Run Code Online (Sandbox Code Playgroud)