如何在多个分隔符上拆分字符串(String或& str)?

时间:2015-03-24 18:26:43

标签: string split rust

我希望能够将字符串aabbaacaaaccaaabb分开,而不是ccb。该示例将生成c

我已经可以在单个分隔符上分割字符串,而单词()函数会在aa,aacaaa,aaa\n上分割字符串,所以我认为它必须是可能的。

1 个答案:

答案 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);
    }
}