我希望能够将字符串aabbaacaaaccaaa
与bb
分开,而不是cc
或b
。该示例将生成c
。
我已经可以在单个分隔符上分割字符串,而单词()函数会在aa,aacaaa,aaa
,和
\n
上分割字符串,所以我认为它必须是可能的。
答案 0 :(得分:5)
很遗憾,您现在无法使用标准库执行此操作。您可以拆分多个char
分隔符,但words
会这样做。您需要为split
提供一些字符:
for part in "a,bc;d".split(&[',', ';'][..]) {
println!(">{}<", part);
}
但是,如果您尝试使用字符串,则会收到此错误:
error: the trait `core::str::pattern::Pattern<'_>` is not implemented for the type `&[&str]` [E0277]
for part in "a,bc;d".split(&[",", ";"][..]) {
^~~~~~~~~~~~~~~~~~~~~~
但是,您可以为自己的类型实现Pattern
,其中包含一段字符串。
如果您使用不属于标准库的良好支持的箱子很酷,可以使用regex:
extern crate regex;
fn main() {
let re = regex::Regex::new(r"bb|cc").unwrap();
for part in re.split("aabbaacaaaccaaa") {
println!(">{}<", part);
}
}